如何创建触发器以在表中新插入行的同一表的另一列的值相同的列中插入值。
假设我有如下表
ColumnA | ColumnB
我希望在行插入表或列值更新后立即将列值插入到 ColumnA 中。但反之亦然,即将columnA 值插入columnB
.下面的代码仅处理 INSERT ,请帮助我如何处理两者插入和更新表的值,即当插入或更新columnB 值时。
CREATE TRIGGER inserupdate
ON triggertestTable
AFTER INSERT,UPDATE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for trigger here
declare @value int
select @value=columnB from inserted
update triggertestTable
set columnA=@value
END
GO
如果像下面这样插入值,则效果很好
insert into triggertestTable(columnB) values('xyz')
列值被插入到columnA中
ColumnA | ColumnB
xyz | xyz
但是,如果其他应用程序在列 A 中插入值,则空值会在两者中更新
insert into triggertestTable(columnA) values('pqr')
现在记录是
ColumnA | ColumnB
xyz | xyz
NULL | NULL
正确的记录集应该如下所示
ColumnA | ColumnB
xyz | xyz
pqr | NULL
如何解决这个问题呢。