我遇到了一个执行此操作的存储过程:
DECLARE @DebugLogging BIT = dbo.fnIsDebugLoggingEnabled();
IF (@DebugLogging = 1)
BEGIN
-- some verbose logging information here...
END
基于是否启用调试日志记录,这是标量函数dbo.fnIsDebugLoggingEnabled()
给出的输出。
我检查了该功能的创建脚本,我认为它总会返回0.也许我错了。有人可以检查我是否正确思考?
我在想 - >为什么有人会为永远不会发生的情况做出努力?
该功能的脚本是:
CREATE FUNCTION [dbo].[fnIsDebugLoggingEnabled]()
RETURNS BIT
AS
BEGIN
RETURN 0;
END
我跑了select dbo.fnIsDebugLoggingEnabled()
,确实返回了0。
答案 0 :(得分:1)
你的观察是正确的;返回的值将始终为零,因此不会发生详细日志记录。
我不能说为什么开发人员选择以这种方式实现调试标志,但它可能是一个部署选项,根据选择创建不同版本的函数。就个人而言,我会在表格中存储这样的可配置值。