如何创建触发器以在与表中新插入的行的同一表的另一列的值相同的列中插入值。
假设我有如下表
ColumnA | ColumnB
我希望在将行插入表或 columnB 值更新后立即将 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')
ColumnB 值被插入到 columnA
ColumnA | ColumnB
xyz | xyz
但是,如果其他一些应用程序在 columnA 中插入值,则两者都会更新空值
insert into triggertestTable(columnA) values('pqr')
现在记录是
ColumnA | ColumnB
xyz | xyz
NULL | NULL
正确的记录集应该如下所示
ColumnA | ColumnB
xyz | xyz
pqr | NULL
如何解决这个问题呢。