gpt4 book ai didi

sql - 当我将 SQL 列更新为自身时会发生什么? -或- 简化条件更新?

转载 作者:行者123 更新时间:2023-12-02 20:00:31 25 4
gpt4 key购买 nike

我想调用一个“更新”存储过程,它不一定包含所有列。可能有更好的方法来处理这个问题......正如您所看到的,如果我不传入列参数,它们的值为 NULL。然后,使用 ISNULL,我将列设置为其新值或现有值。

CREATE PROCEDURE [dbo].[spUpdateTable] 

@pPKID bigint = NULL,
@pColumn1 int = NULL,
@pColumn2 int = NULL

AS
BEGIN

SET NOCOUNT ON;

UPDATE
TableName
SET
[Column1] = ISNULL(@pColumn1,[Column1]),
[Column2] = ISNULL(@pColumn2,[Column2])

WHERE
[PKID] = @pPKID
END

最佳答案

这基本上与事务复制存储过程在更新订阅者上的表时执行的操作相同。如果微软自己做的话,一定是安全的吧? :-)

说真的,我在这里主要关心的是表上可能存在的任何更新触发器。您想要了解潜在触发这些触发器对可能不发生变化的影响。否则我认为你的技术很好。

关于sql - 当我将 SQL 列更新为自身时会发生什么? -或- 简化条件更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3816498/

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