This example creates two tables, TZ and TY, and an INSERT trigger on TZ. When a row is inserted to table TZ, the trigger (Ztrig) fires and inserts a row in TY.
USE tempdb GO CREATE TABLE TZ ( Z_id int IDENTITY(1,1)PRIMARY KEY, Z_name varchar(20) NOT NULL)
--Result set: This is how table TZ looks Z_id Z_name ------------- 1 Lisa 2 Mike 3 Carla
CREATE TABLE TY ( Y_id int IDENTITY(100,5)PRIMARY KEY, Y_name varchar(20) NULL)
INSERT TY (Y_name) VALUES ('boathouse') INSERT TY (Y_name) VALUES ('rocks') INSERT TY (Y_name) VALUES ('elevator')
SELECT * FROM TY --Result set: This is how TY looks: Y_id Y_name --------------- 100 boathouse 105 rocks 110 elevator
/*Create the trigger that inserts a row in table TY when a row is inserted in table TZ*/ CREATE TRIGGER Ztrig ON TZ FOR INSERT AS BEGIN INSERT TY VALUES ('') END
/*FIRE the trigger and find out what identity values you get with the @@IDENTITY and SCOPE_IDENTITY functions*/ INSERT TZ VALUES ('Rosalie')
SELECT SCOPE_IDENTITY() AS [SCOPE_IDENTITY] GO SELECT @@IDENTITY AS [@@IDENTITY] GO
--Here is the result set. SCOPE_IDENTITY 4 /*SCOPE_IDENTITY returned the last identity value in the same scope, which was the insert on table TZ*/
@@IDENTITY 115 /*@@IDENTITY returned the last identity value inserted to TY by the trigger, which fired due to an earlier insert on TZ*/
Jeg åbnede en ny forbindelse til samme DB, med samme connection string, og udførte INSERT og SELECT SCOPE_IDENTITY på den, hvilket virkede perfekt.
Så der må have været et eller andet på min første connection der "forstyrrede" SCOPE_IDENTITY? - Det eneste jeg udfører på samme side er 2 SELECTS, så jeg er lidt forvirret.
Men det vigtigste er jo at det virker, arne smid et svar :)
Tja, syntes nu ikke der er nogen grund til at bruge 70 liniers kode på noget som man kan klare på 5, bare for at spare en enkelt SELECT :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.