2015-04-23 62 views
-2

我有兩個表Table1Table2和表的結構填寫第二表自動數據時在一個表中插入數據

Table1   
Primary Key | Name  

Table2   
Primary Key | Table1_Id_pk | Status - true/false value  

當我將數據插入Table2我想自動在table1從傳送的數據Table2其中Status錯誤。

+0

觸發可能是在這種情況下非常有用。 –

+0

觸發器不好,避免它。對於這個簡單的例子,請使用@@ identity .. – Ajay2707

+0

在插入期間,您希望從table2中的table1中複製哪些數據?你能舉個例子嗎? –

回答

0

您可以創建AFTER INSERTtrigger

CREATE TRIGGER DataMigration 
ON Table2 
AFTER INSERT 
AS 
BEGIN 

    INSERT INTO Table1 
    SELECT * 
    FROM TAble2 
    WHERe Status = 'false' 

END 
GO 
-1

檢查這個例子中,使用@@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

+0

按照OP,他希望在t2中將數據從t2複製到t1時,狀態='false',但在您的情況下,您正在將標識從t1複製到t2。 –

+0

如果可能,應該避免使用此解決方案,因爲在大多數情況下數據是批量插入的。處理單個行肯定會損害性能。另外,如果要從多個存儲過程插入數據,則需要編輯所有這些數據。 – gotqn

+0

謝謝你們,我現在不編輯。因爲問題是錯誤的需要子表​​第一次,然後插入主表...我仍在等待由@Anumpam更新的問題 – Ajay2707

相關問題