设置:
我有两台不同的机器,一台是MS SQL Server 2008,它是我的主机,另一台是MS SQL Server 2000.新生成的数据存储在主服务器(2008)的特定表中。
问题:
我的主机具有有限的存储空间,而我的旧版机器具有较旧的SQL版本(2000),并没有这样的限制。
可能的解决方案:
至少作为临时解决方案,我可以尝试使用由Windows任务计划程序运行的sqlcmd,按日计划将一些数据从主计算机移动到辅助计算机。
我的数据中最大部分存储在一个表中,因此我们的想法是“切割”#34;它们来自主服务器上的表,并将它们附加到"备份/仓库/存储"我的辅助服务器上的表。
到目前为止我尝试了什么:
到目前为止,我还没有能够同时从主服务器连接到两台服务器,至少使用sqlcmd。 sqlcmd对它可以同时创建的连接有限制吗?
其他可能的方式:
那个案子有建议的做法吗?编写一个vbs脚本从主服务器导出并导入到辅助服务器是不是一个好主意?
欢迎所有更正和建议。谢谢你的时间。
答案 0 :(得分:1)
首先,链接服务器。从要插入的服务器,运行此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"使用要复制数据FROM的SQL Server的实际主机名\实例。同时替换"用户"和#34;密码"使用适当的登录凭据到该服务器。
完成此操作后,您可以针对此服务器执行以下SQL(从任何地方,包括SQLCMD):
INSERT INTO [LocalTable]
SELECT * FROM [remoteSqlServer\Instance].[DatabaseName].[schema].[TableName]
同样,这只是一个示例...您将所有这些值替换为适合您的源数据库和目标数据库的值(方括号中的所有内容)。例如,它可能看起来像这样:
INSERT INTO [HistoricalData]
SELECT * FROM [DBServer\SQL2008].[ProductionDatabase].[dbo].[CurrentData]
我希望这会有所帮助。