在 SQL Server DB 之间自动/以编程方式复制表(结构和数据)
Posted
技术标签:
【中文标题】在 SQL Server DB 之间自动/以编程方式复制表(结构和数据)【英文标题】:Automatically / programmatically copy tables (structure and data) between SQL Server DBs 【发布时间】:2018-06-07 16:21:42 【问题描述】:...如果您有一长串要传输的表名,并且您不想在向导中一一标记它们的复选框?
【问题讨论】:
在列表中复制表格是什么意思?您想将 X 个表(及其行)从一台服务器复制到另一台服务器吗? @scsimon:我有一个表名列表,我需要将其从包含更多表的数据库复制到另一个缺少这些表的数据库。我宁愿将该列表提供给脚本或其他东西,而不是使用向导并且必须手动标记表格,因为它是一个很长的列表。 如果我理解正确,你不想做this method? 我不会post this as an answer,但这似乎是你想要做的。我只是提醒一下,这可能需要很长时间,具体取决于数据和表格列表。我会分批分解。另外,我会查看您的事务日志并增加它们的备份频率。 @scsimon:谢谢你提供的信息,但是,正如我在标题中提到的,我还需要复制结构(重新创建表),而不仅仅是传输数据。 【参考方案1】:二进制,
看看 dbatools for powershell。像他们的工具集这样的灵魂可能会有用。我知道他们有一个迁移工具。
dbatools 可以在这里找到https://dbatools.io/
另外,您可以查看https://sqljana.wordpress.com/2017/06/12/powershell-copy-sql-server-tables-structure-data-indexes-to-another-databaseinstance/,它似乎详细说明了 powershell 中的方法来执行您想要的操作,并从文本文件列表或 SQL 查询中填充 $tables 变量。
【讨论】:
谢谢。据我在命令列表中看到的,DBATools 仅对自动复制整个数据库有用(Copy-DbaDatabase)? dbatools 似乎有复制所有其他对象的命令,但没有复制表。 bitolean, 看看这篇博文[link]:(sqljana.wordpress.com/2017/06/12/…) 看起来你可以将表的列表导入到数组变量中直接调用(在用法中$tables 变量可以从 SQL 查询或文本文件中读取的部分) 谢谢。我会仔细看看的。您可能应该将其发布为答案。现在,我已经求助于使用 SSIS 包,以至少在我必须多次复制相同的表时避免重复单击相同的列表。这个问题仍然有效。以上是关于在 SQL Server DB 之间自动/以编程方式复制表(结构和数据)的主要内容,如果未能解决你的问题,请参考以下文章
数据库语言之间的区别 SQL server , Oracle , mysql , db2``
从 SQL Server DB 更新单独工作表中的数据后自动刷新 Excel 2007 数据透视表
如何在一定时间后自动删除sql server中的记录[重复]