Sql-Server
檢查文本列中的更改
使用 SQL Server 2012,如何檢查文本列中的更改?
我知道 text 數據類型已被棄用,並得到有用的消息
不能在 ‘inserted’ 和 ‘deleted’ 表中使用 text、ntext 或 image 列。
當試圖在觸發器中引用現有的文本列時,像在列上加入插入和刪除的表這樣的事情不起作用。UPDATE()會起作用,但它總是正確的(我猜前端只是推送表單欄位中的任何數據,無論它是否更改)。
關於如何檢查列上的更改有什麼建議嗎?
你能實現一個 INSTEAD OF UPDATE 觸發器嗎?- 對我的本地實例的快速測試表明您可以引用插入和刪除的表。當然,您仍然必須應用真正的更新。
這是我的快速測試
create table TextDataTypeTest (Col1 text) insert into dbo.textdatatypetest (col1) values('test') ---------------- create TRIGGER dbo.TextDataTypeTest_Trigger ON dbo.TextDataTypeTest instead of UPDATE AS BEGIN select col1 into #Before from deleted select col1 into #After from inserted select * from #Before select * from #After update a set a.col1=b.col1 from dbo.textdatatypetest a join inserted b on 1=1 END GO update dbo.textdatatypetest set col1='oneforalx'