我有一个字符串属性,可能是null也可能不是null。
我正在使用此调用将其传递给SP:
db.AddInParameter(InsertMessageDetailCommand, "MyParam", System.Data.DbType.String, this.myParam);
该字段在SP中定义如下:
@MyParam nvarchar(50)
如何更改SP以允许空值,如果param值为null,则在SP后面的数据库表中插入null?
由于
答案 0 :(得分:2)
将存储过程参数声明为可选:
@MyParam nvarchar(50) = NULL
例如:
CREATE PROCEDURE TestProc
(
@Param1 varchar(50) = NULL
)
AS
SELECT
*
FROM
TestTable
WHERE
((@Param1 IS NULL) OR (col1 = @Param1))
但请注意,此模式与许多参数一起使用时,可能会因“参数嗅探”导致错误地缓存查询计划。