跨服务器SQL
我想将数据从一台服务器的数据库移植到另一台服务器的数据库。
这些数据库都位于不同的mssql 2005服务器上。
复制可能不是一种选择,因为目标数据库是在[时间间隔]基础上从头开始生成的。
我最好做些类似的事情
insert * from db1/table1 into db2/table2 where rule1 = true
显然,此脚本中会包含连接凭据。
解决方案
回答
我们可以使用数据转换服务来完成这项工作吗?这提供了各种各样的螺栓工具来完成这种事情。
我们可以从Microsoft网站下载SQL Server 2005功能包。
这里
回答
是否可以选择SQL Server Integration Services(SSIS)?如果是这样,我会用它。
回答
我认为我们想要做的就是按照此msdn文章创建链接服务器。然后,我们将使用4部分对象名称进行选择,例如:
Select * From ServerName.DbName.SchemaName.TableName
回答
我们是将数据库的全部内容从一台服务器传输到另一台服务器,还是仅将几张表中的一些数据传输到服务器?
对于这两种选择,SSIS都能胜任,特别是如果我们打算定期进行转移。
如果我们只想从1或者2个表中复制一些数据,而更喜欢在SQL Management Studio中使用TSQL进行复制,则可以使用pelser建议的链接服务器
- 将源数据库服务器设置为链接服务器
- 使用以下语法访问数据
select columnName1, columnName2, etc from serverName.databaseName.schemaName.tableName
回答
好吧,我不同意我们对复制的评论。我们可以通过从头开始创建数据库来开始复制,并且可以控制更新是通过更新可用的客户端数据库还是简单地重新创建数据库来完成。
自动复制将通过自动管理密钥和关系来简化工作。
我认为最简单的方法是通过MSSQL Server Studio启动快照复制,获取T-SQL对应的脚本(即,用于发布和订阅的对应T-SQL指令),并将这些脚本记录为作业的一部分。 SQL代理的"作业"列表,或者作为"复制"文件夹中的复制作业。
回答
我们可以走链接服务器的路线。
我们只是不能使用select * into,而必须在select中插入。
如果我们没有使用复制的经验,我会避免复制,因为如果复制失败,可能很难修复,如果管理不当,则容易出现其他问题。
保持简单,尤其是在数据库较小的情况下。