我有一個表,其中包含一個名為ID的自動遞增標識/主鍵列。

CREATE TABLE Table1(

[ID] [bigint] IDENTITY(1,1) NOT NULL,

[TextContent] [nvarchar](450) NOT NULL,

[Version] [bigint] NOT NULL)

當我更新[TextContent]時,我希望[Version]增加1。目的是為每行添加一個版本,該行在更新行時隨之增加。

有沒有合理的方法在單個表中執行此操作?可能與計算列值和/或觸發器有關?

我正在通過Entity Framework使用MSSQL 2008。

感謝您的任何信息!

一般承認的答案

這是在評論中討論的更新之後。它只是遞增此行的版本。

ALTER TRIGGER triggerIncrementUpdate
ON Table1
AFTER UPDATE

AS
BEGIN

UPDATE Table1 SET Version += 1 FROM Table1 INNER JOIN INSERTED As I ON Table1.ID = I.ID

END

熱門答案

方法1

嘗試創建TRIGGER

CREATE TRIGGER incrementValue
ON Table1
FOR Insert
AS 
   Update Table1 
   set columnvalue = columnvalue +1 
   where id in (select id from inserted)
GO

方法2

使用更新命令

每次增加列值以及使用更新命令,如下所示

UPDATE Tab
   SET Version= Version + 1
 WHERE id = 1


Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因