2012-03-26 104 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

相关问题