SQL阻止将null传递给过程

时间:2014-11-27 02:00:56

标签: sql sql-server-2008 null

我正在尝试编写一个过程,但希望阻止用户将null传递给4个变量。

它有一个变量,用户可以在两个变量之间进行选择。

EG。巧克力或香草或两者兼而有之。因此,如果需要,一个值可以保持为空。

另外两个是强制性的。所以null不能传递。

三江源

2 个答案:

答案 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语句以检查值的有效性。

如果它们不符合预期,RAISERRORRETURN不在此过程中。