[英]Updating a column based on another column in SQL Server
我有一個存儲過程,它從 ADF 管道獲取值以將水印值寫入 SQL 服務器表中。 新的水印值實質上是替代了舊的,舊的不留任何記錄。
但是,我的新要求是同時保留舊水印值。
我當前幫助更新表格的過程很簡單。
ALTER PROCEDURE [dbo].[usp_write_watermark] @LastModifiedtime datetime, @TableName varchar(50)
AS
BEGIN
UPDATE watermarktable
SET [WatermarkValue] = @LastModifiedtime
WHERE [TableName] = @TableName
END
之后的 output 是這樣的:
桌子 | 舊水印 | 新水印 |
---|---|---|
表A | 22/12/2022 | 23/12/2022 |
表B | 21/12/2022 | 22/12/2022 |
等等。 我不想要一個不斷增長的列表,但希望 NewWaterMark 在修改新水印時替換舊水印。 我希望我說得有道理。
如果我沒有解釋清楚,請提問。
您只需在 UPDATE 語句中再添加一行即可。 此額外行將當前水印保存到舊水印字段中。
UPDATE watermarktable
SET [OldWaterMark] = [NewWatermark],
[NewWatermark] = @LastModifiedtime
WHERE [TableName] = @TableName
請注意,當您為表添加第一個水印時(以便在此之前, newwatermark
為 NULL),此 NULL 值將傳輸到oldwatermark
。 只有第二次更新 - newwatermark
已經有一個值 - 是復制到oldwatermark
的非 NULL 值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.