我目前正在調查在存儲過程中的錯誤建立在MS SQL Server 2008的 當前存儲過程的簽名是這樣的:T-SQL - 位輸出參數默認值
CREATE PROCEDURE dbo.<Name>
(
ParameterOne int
, ParameterTwo bit output
)
在代碼的輸出正在評估參數值以確定對我而言至少可疑的代碼流。代碼看起來是這樣的:
IF (ParameterTwo = 0)
BEGIN
PRINT ParameterTwo
-- Do stuffs
END
IF (ParameterTwo = 0)
BEGIN
PRINT ParameterTwo
-- Do other stuffs
END
在調試(使用打印)我配置標誌的塊#1和塊#內要被顯示但它們都沒有時執行的代碼被示出。 但是,如果在執行塊#1之前將值分配給ParameterTwo(ParameterTwo = 0),則會按預期顯示標誌。
我的擔心顯然是關於位輸出參數的創建。當你創建一個由MS SQL Server(如果有的話)分配的缺省值的位參數(輸入/輸出)時?那是一個NULL值嗎?我的印象是0(虛假),但似乎並非如此。
順便說一句 - 我正在考慮避免輸出參數的用法與代碼進行比較。相反,我傾向於認爲在存儲過程結束之前使用內部變量並將其值賦給輸出參數會更清楚。
任何迴應/意見將不勝感激。
在此先感謝。
默認值是'NULL',而不是'0'。您應該明確設置值。 –