![](/img/trans.png)
[英]SQL Server stored procedures on updates. Differentiate between nulls and not existing with json
[英]Accepting NULLS into Stored Procedures
下面的存储过程非常简单,但是它允许传入NULL值。
我只是想知道这里有什么最佳实践,以及在这种情况下如何处理NULL?
ALTER PROCEDURE [dbo].[spGetClient]
@ClientID int
AS
BEGIN
SET NOCOUNT ON;
SELECT
......
FROM
Client
WHERE
ClientID = @ClientID
您可以引发自定义错误:
ALTER PROCEDURE [dbo].[spGetClient]
@ClientID int
AS
BEGIN
SET NOCOUNT ON;
if @ClientID is null
BEGIN
raiserror('The value for ClientID should not be null', 15, 1)
return;
END
SELECT
......
FROM
Client
WHERE
ClientID = @ClientID
END
最简单的事情就是将参数声明为NOT NULL
:
ALTER PROCEDURE [dbo].[spGetClient] (
@ClientID int NOT NULL
)
. . .
但是,并非所有存储过程都允许这样做。
您的存储过程很好。 如果传入NULL
值,则将不返回任何行。 这似乎是合理的,因为ClientId
在Client
表中可能永远不会为NULL
,因此我看不到任何问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.