繁体   English   中英

使用sqlcmd将数据从SQL Server 2008移动到远程SQL Server 2000

[英]Moving data from SQL Server 2008 to remote SQL Server 2000, using sqlcmd

设置:
我有两台不同的计算机,一台使用MS SQL Server 2008作为主机,另一台使用MS SQL Server2000。新生成的数据存储在主服务器(2008)上的特定表中。

问题:
我的主计算机的存储空间有限,而我的次要计算机具有较旧的SQL版本(2000),则没有这种限制。

可能的解决方案:
至少作为一个临时解决方案,我可以尝试使用Windows Task Scheduler运行的sqlcmd,每天将一些数据从主机移动到辅助计算机。
我的数据的最大部分存储在单个表中,因此其想法是从主服务器上的表中“剪切”它们,并将其附加到辅助服务器上的“备份/仓库/存储”表中。

到目前为止我尝试过的是:
到目前为止,至少在使用sqlcmd之前,我无法同时从主服务器同时连接到两台服务器。 sqlcmd可以同时创建的连接是否有限制?

其他可能的方式:
有针对这种情况的建议做法吗? 编写一个vbs脚本从主服务器导出并导入到辅助服务器是个好主意吗?

欢迎所有更正和建议。 并感谢您的宝贵时间。

首先,链接服务器。 从您要插入到的服务器中,运行以下SQL(使用任何您想通过...运行SQL的工具... SQL Server Management Studio或SQLCMD或OSQL或其他工具):

EXEC sp_addlinkedServer N'remoteSqlServer\Instance', N'SQL Server'
EXEC sp_addlinkedsrvlogin @rmtsrvname = N'remoteSqlServer\Instance', @useself = 'FALSE', @rmtuser = N'user', @rmtpassword = N'password'

将“ remoteSqlServer \\ Instance”替换为要从中复制数据的SQL Server的实际主机名\\实例。 还要用该服务器的适当登录凭据替换“用户”和“密码”。

完成之后,您可以在此服务器上(包括SQLCMD在内的任何位置)执行如下所示的SQL:

INSERT INTO [LocalTable]
SELECT * FROM [remoteSqlServer\Instance].[DatabaseName].[schema].[TableName]

再次,这只是一个示例...您将用适合您的源数据库和目标数据库的值替换所有这些值(方括号中的所有内容)。 例如,它可能看起来像这样:

INSERT INTO [HistoricalData]
SELECT * FROM [DBServer\SQL2008].[ProductionDatabase].[dbo].[CurrentData]

我希望这有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM