将一个表从一个数据库移动到另一个数据库 SQL Server

30

我有一个名为 DB_1 的数据库,其中有一个空表 T1,该表有5列。

我想将这个表移动到同一SQL服务器上的另一个数据库 DB_2 中。

我尝试使用以下命令:

alter table DB_1.T1 rename DB_2.T1

但是这里出现了错误。

错误消息102,级别15,状态1,第1行
附近的语法不正确。

请帮忙。

3个回答

48

如果数据库在同一台服务器上,则可以按照以下方式操作:

select * into DB_2.T1 from DB_1.[dbo].[T1]

如果你的数据库不在同一台服务器上,那么你需要创建一个链接服务器。

但是,你也可以生成"创建表脚本"并在第二个数据库上运行它们。


2
谢谢。这将在其他数据库DB_@中创建具有相同列名的表,但不会复制约束和索引。您能告诉我如何继续吗? - Mudassir Hasan
3
如果您需要复制约束和索引,最好使用SSMS。http://social.msdn.microsoft.com/Forums/en-US/transactsql/thread/17a16dc4-dcf1-4de8-baba-6949c55a4c5d/ - Buzz

33

SQL Server Management Studio 中,您可以使用 导入和导出向导 :

  1. 右键单击数据库名称(DB_2)
  2. 任务
  3. 导入数据
  4. 选择数据源 (DB_1)
  5. 选择目标 (DB_2)
  6. 选择 从一个或多个表复制数据
  7. 选择您的表 (T1)
  8. 完成

3
是的,这个方法可行,但会删除“标识”和“外键”的引用,有没有其他解决方案? - Shaiju T

0

在我的办公室朋友的帮助下,这是我想出的解决方案。

  1. 在对象资源管理器中,转到源数据库并选择要移动的表。

  2. 右键单击,脚本表为 -> CREATE TO -> 新查询编辑器窗口。这将打开一个查询窗口,其中包含指定表上的模式、索引和约束的 SQL 查询。

  3. 您可以在 CREATE TABLE 部分更改表名并进行其他更改...

  4. 将第一行中的数据库名称 USE <DATABASE> 更改为目标数据库并执行查询。

谢谢。


这将创建一个表结构,但数据仍然保留在旧表中。 - Jonny
4
@Jonny 这没有问题,因为他说他的源表是空的。他的整个问题没有太多意义。 :) - The incredible Jan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接