在 T-SQL 中,我声明了一个用于某些查询的局部变量,如下所示:
DECLARE @var_last datetime;
SET @var_last = (SELECT TOP(1) col_date FROM tbl_dates ORDER BY col_date);
Run Code Online (Sandbox Code Playgroud)
在我正在测试的应用程序中,此查询返回 NULL 将是一个错误,并且如果查询返回崩溃错误,则是可取的。
我想设置@var_last
为NOT NULL
但语法...
DECLARE @var_last datetime NOT NULL;
Run Code Online (Sandbox Code Playgroud)
...是无效的。我可以对查询的返回值写一个简单的检查,看看它是否为 NULL,如果是错误,但我的问题是,是否不可能将局部变量声明为 NOT NULL?
没错,根据 的文档DECLARE @local_variable
,可从以下网址获得:http : //technet.microsoft.com/en-us/library/ms188927.aspx,它不接受NULL | NOT NULL
参数——这些参数仅对列定义有效。
如果您想在返回 a 时停止执行NULL
,则测试NULL
并且,如果是,则RAISERROR
;请参阅:http : //technet.microsoft.com/en-us/library/ms178592.aspx。