Sql server 2005 比较触发器sql server 2005中两个表中的两条记录
我希望,如果删除的表和插入的表具有相同的记录,那么我不会更新另一个表。所以,请告诉我如何比较两个不同表中删除和插入的具有相同结构的两行 请帮我提供示例代码Sql server 2005 比较触发器sql server 2005中两个表中的两条记录,sql-server-2005,Sql Server 2005,我希望,如果删除的表和插入的表具有相同的记录,那么我不会更新另一个表。所以,请告诉我如何比较两个不同表中删除和插入的具有相同结构的两行 请帮我提供示例代码 谢谢您必须测试每一列 INSERT OtherTable (keycol, col1, col2, ...) SELECT I.keycol, I.Col1, I.Col2, .. FROM INSERTED I JOIN DELETED D On I.keycol = D.keycol WHERE
谢谢您必须测试每一列
INSERT OtherTable (keycol, col1, col2, ...)
SELECT
I.keycol, I.Col1, I.Col2, ..
FROM
INSERTED I
JOIN
DELETED D On I.keycol = D.keycol
WHERE
I.col1 <> I.col1
OR
I.col2 <> I.col2
OR
ISNULL(I.col3, 0) <> ISNULL(I.col3, 0) --nullable columns
OR
...
插入其他表(keycol,col1,col2,…)
挑选
I.keycol,I.Col1,I.Col2。。
从…起
插入I
参加
已删除I.keycol=D.keycol上的D
哪里
I.col1 I.col1
或
I.col2 I.col2
或
ISNULL(I.col3,0)ISNULL(I.col3,0)——可为空的列
或
...
你也可以使用
插入。。。
挑选
I.keycol,I.Col1,I.Col2。。
从…起
插入I
参加
已删除I.keycol=D.keycol上的D
哪里
HashBytes('SHA1',CAST(I.col1作为nvarchar)+I.col2+等)
HashBytes('SHA1',CAST(D.col1作为nvarchar)+D.col2+等)
不是100%可靠,请使用
插入。。。
挑选
I.keycol,I.Col1,I.Col2。。
从…起
插入I
参加
已删除I.keycol=D.keycol上的D
哪里
校验和(I*)校验和(D*)
您必须测试每一列
INSERT OtherTable (keycol, col1, col2, ...)
SELECT
I.keycol, I.Col1, I.Col2, ..
FROM
INSERTED I
JOIN
DELETED D On I.keycol = D.keycol
WHERE
I.col1 <> I.col1
OR
I.col2 <> I.col2
OR
ISNULL(I.col3, 0) <> ISNULL(I.col3, 0) --nullable columns
OR
...
插入其他表(keycol,col1,col2,…)
挑选
I.keycol,I.Col1,I.Col2。。
从…起
插入I
参加
已删除I.keycol=D.keycol上的D
哪里
I.col1 I.col1
或
I.col2 I.col2
或
ISNULL(I.col3,0)ISNULL(I.col3,0)——可为空的列
或
...
你也可以使用
插入。。。
挑选
I.keycol,I.Col1,I.Col2。。
从…起
插入I
参加
已删除I.keycol=D.keycol上的D
哪里
HashBytes('SHA1',CAST(I.col1作为nvarchar)+I.col2+等)
HashBytes('SHA1',CAST(D.col1作为nvarchar)+D.col2+等)
不是100%可靠,请使用
插入。。。
挑选
I.keycol,I.Col1,I.Col2。。
从…起
插入I
参加
已删除I.keycol=D.keycol上的D
哪里
校验和(I*)校验和(D*)
INSERT ...
SELECT
I.keycol, I.Col1, I.Col2, ..
FROM
INSERTED I
JOIN
DELETED D On I.keycol = D.keycol
WHERE
CHECKSUM(I.*) <> CHECKSUM(D.*)