gpt4 book ai didi

sql - 如何更新sql server存储过程中的可为空的列

转载 作者:行者123 更新时间:2023-12-04 13:02:34 25 4
gpt4 key购买 nike

我有一个存储过程负责更新我的个人表。我并不总是更新每一列,所以我为一些过程参数提供了默认值 (null)。但是,如果我真的想将 person.middleinitial 设置为 null 怎么办?程序如何知道我的意图?

实际上,我的 person 表有很多列,而且很多列都可以为 null,因此根据解决方案,这可能会变得很麻烦。

ALTER PROCEDURE [dbo].[uspPerson_update]     
@id uniqueidentifier,
@fname nvarchar(20) = NULL,
@minitial nvarchar(1) = NULL,
@lname nvarchar(20) = NULL
AS BEGIN
SET NOCOUNT ON;
UPDATE Person
SET
fname=ISNULL(@fname,fname),
minitial=ISNULL(@minitial,minitial),
lname=ISNULL(@lname, lname)
WHERE id=@id
END

最佳答案

不要将首字母设置为 NULL,将它们设置为零长度/空字符串 ''

然后你就可以分辨“未指定”(NULL)和“无首字母”('')的区别了。

关于sql - 如何更新sql server存储过程中的可为空的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8852081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com