是否可以创建存储过程
CREATE PROCEDURE Dummy @ID INT NOT NULL AS BEGIN END
为什么不可能做这样的事情?
您可以在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
你的代码是正确的,合理的,甚至是良好的实践.您只需要等待支持这种语法的SQL Server 2014.
毕竟,为什么在编译时可以在运行时捕获?
另请参阅此msdn文档并Natively Compiled
在那里搜索.
正如dkrez所说,nullabiliy不被视为数据类型定义的一部分.我仍然想知道为什么不.