sql-server – 如何将某些表的结构和内容从一个数据库复制到另一个数据库?

如何将SQL Server Management Studio中下表的结构和内容从数据库SNO_TEST复制到SNO_TMP(在同一服务器上)?

表的名称是ADMIN_ErrorLog,AdminMissingFiles和SNO_QAErrorCategory

最佳答案
(我原本假设已经存在一个问题,但是我找不到一个适用于SQL Server的通用版本,只是一个非常量身定制的版本,或者用于其他平台的版本.)

我选择的方法可能取决于表的大小,以及是否存在与表关联的任何其他对象(如索引,触发器,约束等).但是这里有一些可行的方法:

>使用“导入/导出向导”.

这可能是最简单的.右键单击源数据库,然后转到任务>导出数据…我不打算在此处完成向导的所有步骤,但您可以选择源数据库和目标数据库,然后选择要复制的表. Here’s a page that walks through a simple example,虽然他们使用它从Excel导入数据.

复制数据后,添加任何必要的索引/约束/等.

>做一个SELECT INTO

对于非常小的桌子,我会做的很快:

SELECT *
INTO myDestinationDB.dbo.tablename
FROM mySourceDB.dbo.tablename

当然,用您的数据库名称和表名替换.

这会动态创建目标表.之后您需要自己添加索引/约束.另请注意,对于像标识列这样的有限情况,这并不总是有效.

>编写表定义,然后执行INSERT INTO

右键单击源数据库中的表,然后选择“脚本表作为>创建到>新查询编辑器窗口”

然后将顶部的USE数据库名称更改为目标数据库,并运行CREATE语句以创建表.现在,您有机会在必要时添加索引或约束.然后复制数据,执行以下操作:

INSERT INTO myDestinationDB.dbo.tablename
SELECT * FROM mySourceDB.dbo.tablename

如果这些表有数百万行,那么肯定使用上面的第一种方法,或者使用像自定义SSIS包这样的高级技术(本回答中没有介绍),否则你可能会填满你的事务日志.

希望这会引导您朝着正确的方向前进.祝好运.

转载注明原文:sql-server – 如何将某些表的结构和内容从一个数据库复制到另一个数据库? - 代码日志