我有兩個表Table1
和Table2
和表的結構填寫第二表自動數據時在一個表中插入數據
Table1
Primary Key | Name
Table2
Primary Key | Table1_Id_pk | Status - true/false value
當我將數據插入Table2
我想自動在table1
從傳送的數據Table2
其中Status
錯誤。
我有兩個表Table1
和Table2
和表的結構填寫第二表自動數據時在一個表中插入數據
Table1
Primary Key | Name
Table2
Primary Key | Table1_Id_pk | Status - true/false value
當我將數據插入Table2
我想自動在table1
從傳送的數據Table2
其中Status
錯誤。
您可以創建AFTER INSERT
trigger:
CREATE TRIGGER DataMigration
ON Table2
AFTER INSERT
AS
BEGIN
INSERT INTO Table1
SELECT *
FROM TAble2
WHERe Status = 'false'
END
GO
檢查這個例子中,使用@@identity得到插入行-ID,並使用該ID的子表。
declare @t1 table (pk int identity(1,1) not null , name varchar(50))
declare @t2 table (pk int identity(1,1) not null , t1pk int, status bit)
declare @new_table1Id int
insert into @t1 values('ajay')
set @new_table1Id = @@IDENTITY -This gives you last inserted id of @t1
insert into @t2 values(@new_table1Id , 0)
select * from @t1
select * from @t2
Difference between @@IDENTITY vs SCOPE_IDENTITY() vs IDENT_CURRENT
觸發可能是在這種情況下非常有用。 –
觸發器不好,避免它。對於這個簡單的例子,請使用@@ identity .. – Ajay2707
在插入期間,您希望從table2中的table1中複製哪些數據?你能舉個例子嗎? –