下面是詳細的問題: 在INSERT語句中需要幫助
我想從源表T1的數據填充到目標表T2,T3和T4。現在, 我在做什麼,首先,我插入T2爲:現在
insert into t2(t2.t2Data0, t2.t2Data1)
select t1.t2Data0,t1.t2.Data1 from t1
,插入在T3和T4,我需要一些腳本,可以從T2 和休息採取ID山坳數據來自t1的列數據。
任何答案將不勝感激。由於
下面是詳細的問題: 在INSERT語句中需要幫助
我想從源表T1的數據填充到目標表T2,T3和T4。現在, 我在做什麼,首先,我插入T2爲:現在
insert into t2(t2.t2Data0, t2.t2Data1)
select t1.t2Data0,t1.t2.Data1 from t1
,插入在T3和T4,我需要一些腳本,可以從T2 和休息採取ID山坳數據來自t1的列數據。
任何答案將不勝感激。由於
如果我正確理解你的問題,您插入行到t2之後,你想用它的身份現場幫助填充T3和T4?
如果是這樣,你可以只使用一個JOIN
:
INSERT INTO t3
SELECT t2.id, t1.t3Data0
FROM t1
INNER JOIN t2 ON t1.t2Data0 = t2.tdData0 AND t1.t2Data1 = t2.tdData1
INSERT INTO t4
SELECT t2.id, t1.t4Data0
FROM t1
INNER JOIN t2 ON t1.t2Data0 = t2.tdData0 AND t1.t2Data1 = t2.tdData1
insert t1
(c1, c2, c3, c4)
select coalesce(t2.c1, t3.c1, t4.c1)
, t2.c2
, t3.c3
, t4.c4
from t2
full outer join
t3
on t2.c1 = t3.c1
full outer join
t4
on t2.c1 = t4.c1
or t3.c1 = t4.c1
感謝,Andomar, 嗯,我想我沒有簡要解釋我的問題.... 總之編輯了這個問題.. – Prateek
我沒有測試過,但我看到類似的...在T1 INSERT觸發器是
一)插入到T2後(插入到t2(t2.t2Data0,t2.t2Data1)中選擇t1.t2Data0,t2.Data1從t1插入t1.id = inserted.id上插入)
b)選擇範圍標識(select @ T2ID = SCOPE_IDENTITY()
C)插入到T3(插入到T3(ID,t3data0)選擇@ T2ID,從t1 t.t3data0聯接插在t1.id = inserted.id)
d)插入到T4(插入到T4( ID,t4data0)選擇@ T2ID,從T1 t.t4data0聯接插在t1.id = inserted.id)
CREATE TRIGGER trgName ON [t1]
FOR INSERT
AS
declare @T2ID int
insert into t2(t2.t2Data0, t2.t2Data1) select t1.t2Data0,t2.Data1 from t1 join inserted on t1.id=inserted.id
select @T2ID=SCOPE_IDENTITY()
insert into t3(id, t3data0) select @T2ID, t.t3data0 from t1 join inserted on t1.id=inserted.id
insert into t4(id, t4data0) select @T2ID, t.t4data0 from t1 join inserted on t1.id=inserted.id
end
當然,假設這種情況下對應於您的需求
是的,你的假設是絕對正確的。謝謝sgeddes ... :) – Prateek
@Prateek - np,很高興我可以幫助! – sgeddes