Kod: Tümünü seç
SET IDENTITY_INSERT STOKLAR ON
INSERT INTO STOKLAR(sto_Guid,sto_DBCno,sto_SpecRECno,sto_iptal............
)
OUTPUT INSERTED.*
VALUES(
newid() /*uniqueidentifier*/
,:sto_DBCno /*smallint*/
,:sto_SpecRECno /*int*/
,:sto_iptal /*bit*/
......
)
SET IDENTITY_INSERT STOKLAR OFF
Başka bir firma tabloya trigger eklemiş, dolayısıyla yukarıdaki sql hata vermeye başlamış.
Trigger ekleyen arkadaşlardan gelen cevap, "IDENTITY_INSERT" satırlarını kaldırsınThe target table 'STOKLAR' of the DML statement cannot have any enabled triggers if the statement contains an OUTPUT clause without INTO clause

https://stackoverflow.com/questions/131 ... -the-table
detaylı bir açıklama.
What about INSERTs kısmında (gerçi iki satır üstünde net yazmış ama "Don't use OUTPUT."

OUTPUT INSERTED.* INTO @tmp satırındaki INTO da ki "@tmp"
Must declare table variable @tmp hatasını veriyor
Kod: Tümünü seç
DECLARE @tmp TABLE
(
[sto_Guid] UNiQUEiDENTiFiER NOT NULL DEFAULT(newid())
, [sto_DBCno] SMALLiNT NOT NULL DEFAULT((0))
, [sto_SpecRECno] iNT NULL
, [sto_iptal] BiT NULL
SET IDENTITY_INSERT STOKLAR ON
INSERT INTO STOKLAR(sto_Guid,sto_DBCno,sto_SpecRECno,sto_iptal............
)
OUTPUT INSERTED.* INTO @tmp
VALUES(
newid() /*uniqueidentifier*/
,:sto_DBCno /*smallint*/
,:sto_SpecRECno /*int*/
,:sto_iptal /*bit*/
......
)
SET IDENTITY_INSERT STOKLAR OFF
SELECT * FROM @tmp
Amacım, insert işlemindeki field değerlerinin geri dönmesi. Özellikle UNiQUEiDENTiFiER alanının değeri. detay tablolara kayıtlar için bu gerekli.