当前位置:  开发笔记 > 编程语言 > 正文

如何将NULL限制为存储过程SQL Server的参数?

如何解决《如何将NULL限制为存储过程SQLServer的参数?》经验,为你挑选了2个好方法。

是否可以创建存储过程

CREATE PROCEDURE Dummy 
    @ID INT NOT NULL
AS
BEGIN
END

为什么不可能做这样的事情?



1> Unsliced..:

您可以在sproc中检查其NULL-ness RAISERROR并将状态报告回调用位置.

CREATE   proc dbo.CheckForNull @i int 
as
begin
  if @i is null 
    raiserror('The value for @i should not be null', 15, 1) -- with log 

end
GO

然后打电话:

exec dbo.CheckForNull @i = 1 

要么

exec dbo.CheckForNull @i = null 



2> Patrick From..:

你的代码是正确的,合理的,甚至是良好的实践.您只需要等待支持这种语法的SQL Server 2014.

毕竟,为什么在编译时可以在运行时捕获?

另请参阅此msdn文档并Natively Compiled在那里搜索.

正如dkrez所说,nullabiliy不被视为数据类型定义的一部分.我仍然想知道为什么不.

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有