Torna al Thread
USE tempdb;
GO
CREATE TABLE dbo.TabellaUno
(
ID int IDENTITY(1,1) PRIMARY KEY CLUSTERED
, Nome varchar(30)
)
GO
CREATE TABLE dbo.TabellaDue
(
ID int IDENTITY(1,1) PRIMARY KEY CLUSTERED
, Nome varchar(30)
)
GO
INSERT INTO dbo.TabellaUno (Nome)
VALUES ('Alessandro Alpi')
INSERT INTO dbo.TabellaUno (Nome)
VALUES ('David DeGiacomi')
INSERT INTO dbo.TabellaUno (Nome)
VALUES ('Matteo Raumer')
INSERT INTO dbo.TabellaUno (Nome)
VALUES ('Marco Caruso')
--
INSERT INTO dbo.TabellaDue (Nome)
VALUES ('Marco Rossi')
INSERT INTO dbo.TabellaDue (Nome)
VALUES ('Michael Denny')
GO
-- creo un trigger che dall'inserimento di un record da TabellaUno inserisce in TabellaDue
CREATE TRIGGER tr_TabellaDueInsert ON dbo.TabellaUno
AFTER INSERT, UPDATE
AS
BEGIN
DECLARE @valore varchar(30)
SELECT @valore = INSERTED.Nome FROM INSERTED
INSERT INTO dbo.TabellaDue (Nome)
VALUES (@valore)
END
GO
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id('dbo.proc_Insert'))
DROP PROCEDURE dbo.proc_Insert
GO
-- ora creo una stored procedure che inserisce il record nella TabellaUno e visualizza il valore di @@IDENTITY e SCOPE_IDENTITY()
CREATE PROCEDURE dbo.proc_Insert
@Nome varchar(30)
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO dbo.TabellaUno (Nome)
VALUES (@Nome)
SELECT [Con Identity] = @@IDENTITY
SELECT [Con Scope_Identity()] = SCOPE_IDENTITY()
END
GO
EXEC dbo.proc_Insert 'Nuovo Nome'
GO
DROP TABLE dbo.TabellaUno
DROP TABLE dbo.TabellaDue
GO