2012-03-26 100 views
2

我搞亂了數據。我一直被讚美的ID和值,直到我不記得原件是什麼。 (測試幾件事)。將數據從1個數據庫表複製到另一個的SQL代碼

我有一個表叫query_string_interpretation和DB其一部分調用,test1_db

我有我已經恢復稱爲備份數據庫,test2_db

我如何從一個數據庫表恢復其內容另一個?

+0

我們在談論多少行?還有,哪個版本的SQL 2008?或2005年? – 2012-03-26 12:57:13

+0

MSSQL 2008,786行 – 2012-03-26 12:57:54

回答

1

首先,您需要確保源表中包含所有數據,或者將數據放在兩個表中 - source和目的地。在第一種情況下,你需要截斷目標表:

TRUNCATE TABLE test1_db..query_string_interpretation 

其次,你需要確保你將插入正確的價值觀爲標識字段,如果這些字段存在。使用SET INDENITY_INSERT ON聲明。 第三,你需要插入值:

insert into test1_db..query_string_interpretation 
select * from test2_db..query_string_interpretation 

而且不要忘了切換INDENITY_INSERT爲OFF時,你在第二步中切換它打開。

+1

你有最好的答案,並且你很有禮貌。謝謝! :) – 2012-03-26 13:17:29

+0

@ SP-1986有哪些呢'和你polite'與SQL呢? – 2012-03-26 20:34:13

+0

光顧回覆對新會員不友善或歡迎。爲了回答你的問題,沒有什麼 - 但我很友善。 – 2012-03-26 20:42:41

2

沒有關於您的更多信息...通常您可以使用INSERT INTO/SELECT FROM在表格之間移動數據。

的語法大致是:

INSERT INTO 
test1_db..query_string_interpretation (<your columns here>) 
select <your columns here> 
FROM test2_db..query_string_interpretation 
+0

我不需要截斷我的第一張表嗎? – 2012-03-26 13:00:09

+0

我剛剛刪除了第一個表格內容,然後用* – 2012-03-26 13:04:27

+1

運行它您的問題非常模糊,以至於很難知道您需要什麼。截短?也許;大概刪除。如果test2包含test1中的數據的確切副本,或者它們是同一臺服務器,或者它們是同一臺服務器,或者它們是同一臺服務器,或者它們是同一臺服務器,則不知道是否存在防止刪除的外鍵,表格結構如何任何東西。你的問題只是詢問如何將數據從test2寫回到test1。我假設你明白如何清理你的桌子。花更多的時間來寫你的問題,你會得到更準確的答案。 – EBarr 2012-03-26 13:04:45

1

您可以使用SQL嚮導來爲你做這個。在Management Studio中,右鍵單擊數據庫,選擇Tasks然後Import Data...Export Data...

0

試試這個:

delete from test1_db..query_string_interpretation 

insert into test1_db..query_string_interpretation 
select * from test2_db..query_string_interpretation 

如果你有一個標識字段,你可能不得不寫列的名稱(除身份一)。如果您需要保留ID,請查看SET IDENTITY_INSERT ON語句here

+0

SET的indentity INSERT ON,也許? – 2012-03-26 13:16:59

相關問題