我正在尝试编写一个过程,但希望阻止用户将null传递给4个变量。
它有一个变量,用户可以在两个变量之间进行选择。
EG。巧克力或香草或两者兼而有之。因此,如果需要,一个值可以保持为空。
另外两个是强制性的。所以null不能传递。
三江源
答案 0 :(得分:4)
让我们假设您是对的 - 您不希望存储过程中的参数允许空值。并且让我们假设sombody错误地发送了一个null。
如果您想提出错误,可以像这样做
if (@MyParam is null) raiserror('Null values not allowed for MyParam', 16, 1)
如果您希望参数获得默认值,您可以指定此行:
if (@MyParam is null) set @MyParam = 'something'
简而言之:没有这样的选项,因为sql server无法确保空值不会到达存储的
答案 1 :(得分:0)
对存储过程中的变量允许NULL
。
编写T-SQL IF
语句以检查值的有效性。
如果它们不符合预期,RAISERROR
和RETURN
不在此过程中。