簡體   English   中英

根據 SQL 服務器中的另一列更新列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM