【发布时间】:2010-12-01 09:27:57
【问题描述】:
我一直在测试一个错误的过程,我意识到问题是传入的 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 - ""
我假设 Null 值默认为存储过程参数中分配的值,但这表明它是否作为参数存在,它采用您传入的值。SQL Server 中是否有可以更改此设置的设置行为?
【问题讨论】:
标签: sql sql-server stored-procedures null default