我有两个表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中复制哪些数据?你能举个例子吗? –