我一直在測試出現故障的過程中,我意識到這個問題是在不被拖欠的程序價值傳遞Null值...默認爲空值不爲空
Create Procedure TestVarcharMaxIsNull
(@myVar varchar(MAX) = '')
as
Select 'Hello' Where @myVar Is Null
Go
Exec TestVarcharMaxIsNull Null
Go
Exec TestVarcharMaxIsNull ''
Go
Exec TestVarcharMaxIsNull
Go
Drop Procedure TestVarcharMaxIsNull
輸出
Run 1 - "hello"
Run 2 - ""
Run 3 - ""
我認爲空值默認爲值在存儲過程中參數被分配到,但是這表明如果它存在,因爲它需要你在傳遞值的參數。有沒有在SQL設置可以改變這種行爲的服務器?