【发布时间】:2016-01-07 12:39:54
【问题描述】:
我是 SQL 新手,所以不要大喊大叫。我的触发器有问题,该触发器旨在捕获最后插入的数据并对其进行更新。
create trigger ilgKodIsim on URTFIS instead of insert
as
SET NOCOUNT ON
SET IDENTITY_INSERT URTFIS ON
declare @id int;
insert into URTFIS ( [ID], [FISNO], [FISTAR], [URTTAR], [STATUS], [STOKID], [DEPOID], [BIRIMID], [MIKTAR],
[BIRIM1KATSAYI], [BIRIM2KATSAYI], [BIRIM3KATSAYI], [FIREORAN], [SIPARISID], [PROJEID], [KUR_RAPOR],
[GENELTOPLAM], [GENELTOPLAM_RAPOR], [OZELGRUP1], [OZELGRUP2], [OZELALAN1], [OZELALAN2], [OZELALAN3], [OZELALAN4], [OZELALAN5],
[OZELALAN6], [OZELALAN7], [OZELALAN8], [OZELALAN9], [OZELALAN10], [OZELALAN11], [OZELALAN12], [OZELALAN13],
[OZELALAN14], [OZELALAN15], [OZELALAN16], [OZELALAN17], [OZELALAN18], [OZELALAN19], [OZELALAN20],
[ACIKLAMA], [BARKODID], [FATFISID], [MUHFISID], [SUBEID], [YETKIKODID], [OWN_URTFISID], [MASTER_URTFISID],
[OTOMATIK_ALT_URUN], [GENELGRUP1], [GENELGRUP2], [GENELGRUP3], [GENELGRUP4], [GENELGRUP5], [ERP_LOTID],
[ERP_LOT_CIKIS_GIRIS_HARID], [ERP_VARYANTID], [STKFISID], [STKFISHARID])
select
[ID], [FISNO], [FISTAR], [URTTAR], [STATUS], [STOKID], [DEPOID], [BIRIMID], [MIKTAR],
[BIRIM1KATSAYI], [BIRIM2KATSAYI], [BIRIM3KATSAYI], [FIREORAN], [SIPARISID], [PROJEID], [KUR_RAPOR],
[GENELTOPLAM], [GENELTOPLAM_RAPOR], [OZELGRUP1], [OZELGRUP2],[OZELALAN1], [OZELALAN2], [OZELALAN3], [OZELALAN4], [OZELALAN5],
[OZELALAN6], [OZELALAN7], [OZELALAN8], [OZELALAN9], [OZELALAN10], [OZELALAN11], [OZELALAN12], [OZELALAN13],
[OZELALAN14], [OZELALAN15], [OZELALAN16], [OZELALAN17], [OZELALAN18], [OZELALAN19], [OZELALAN20],
[ACIKLAMA], [BARKODID], [FATFISID], [MUHFISID], [SUBEID], [YETKIKODID], [OWN_URTFISID], [MASTER_URTFISID],
[OTOMATIK_ALT_URUN], [GENELGRUP1], [GENELGRUP2], [GENELGRUP3], [GENELGRUP4], [GENELGRUP5], [ERP_LOTID],
[ERP_LOT_CIKIS_GIRIS_HARID], [ERP_VARYANTID], [STKFISID], [STKFISHARID]
from inserted
SET @id = Scope_Identity()
update URTFIS set OZELALAN2 = 'Deneme' where ID = @id
SET IDENTITY_INSERT URTFIS OFF
我检查后,值没有更新。我想不通。
【问题讨论】:
-
标记使用的 dbms。 (根本不像 ANSI SQL。)
-
你到底为什么要这样做 - 因为你已经接管了将数据插入基表的责任,所以不需要
INSERT然后UPDATE新插入的行(s ) (请注意,rows,因此标量变量不适用于插入的多行),只需将SELECT子句中的OZELALAN2更改为'Deneme'。 -
其实有一个软件在工作。当用户在表中添加一些数据时。我需要对这张表进行一些调整。
标签: c# sql sql-server triggers