2010-01-19 66 views
0

我想將數據複製到新的數據庫。然而,另一個表格包含在應該放置數據的過程中。在存儲(插入)兩個數據時從一個表中選擇數據?

舊錶:

DB1dbopages(ID,標題,內容)

新表(S):

DB2dboPage(id)
DB2dboContent(ID,的pageid,標題,內容)

如何從pages選擇所有數據,而分割/它存儲在PageContent

+3

爲什麼在一個查詢中執行SELECT和INSERT很重要?你有沒有考慮使用交易? – Dor 2010-01-19 20:50:34

+0

只是好奇...爲什麼你只有一張桌子只有一個ID? – 2010-01-19 20:52:13

+0

兩個查詢也是可能的:),如果不清楚,很抱歉。這是一次性操作... – Ropstah 2010-01-19 20:52:55

回答

1

什麼是pageid?是從頁面的ID?

如果是這樣,這假設ID在內容表是一個身份

insert into DB2.dbo.Page (id) 
select id from DB1.dbo.pages 

insert into DB2.dbo.Content(pageid, title, content) 
select id, title, content from DB1.dbo.pages 

還是有點不解這個設計

+0

謝謝,這實際上是一個很好的解決方案,我的問題!要解謎:多語言網頁... – Ropstah 2010-01-19 20:53:34

0

不可能直接。如果你的選擇很貴,你可以考慮將它插入臨時表中,然後插入到事務中的最終表中。

0

廣東話U帶兩個獨立的要求去做呢?不喜歡它:

插入db2.dbo.page 選擇ID從db1.dbo.pages

和:

插入db2.dbo.content(id_page,標題,內容) 選擇ID,標題,內容從db1.dbo.pages

我想這應該工作。

1

是有可能chain two inserts使用OUTPUT子句:

設置:

create table Page (id int) 
create table Content (id int , pageid int, title varchar(100), content varchar(max)) 

create table pages (id int, title varchar(100), content varchar(max)) 

insert into pages values (1, 'Lorem', 'Ipsum'); 
insert into pages values (2, 'eum', 'aliquam vivendo placerat ad'); 

實際插入:

insert into Content (id, pageid, title, content) 
output inserted.pageid into Page(id) 
select id, id, title, content from pages; 

證明:

select * from Page; 
select * from Content; 

氏s實際上可能是有用的,因爲兩個插入內部是在一個語句中,因此它們被自動包含在一個隱式事務中。

+0

我很喜歡它 – Ropstah 2010-01-20 14:11:33

相關問題