我正在尝试将远程SQL Server(而非全部数据)复制到本地主机。我已经从远程服务器生成了用于架构创建的脚本,并成功在上运行了该脚本localhost
。现在,我想向这些表中获取一些数据。问题是,远程服务器上有数百万条记录,我不希望所有记录都转储到我的表中。我只想说一个表最多1000条记录。我如何实现这一目标,这有可能吗?我正在使用SQL Server 2012和SQL Server Management Studio。
首先,使用如下代码将本地服务器链接到远程服务器:
EXEC sp_addlinkedServer N'remoteSqlServer\Instance', N'SQL Server'
EXEC sp_addlinkedsrvlogin @rmtsrvname = N'remoteSqlServer\Instance', @useself = 'FALSE', @rmtuser = N'user', @rmtpassword = N'password'
确保在上述脚本中替换您的远程SQL Server实例名称,用户和密码。
然后运行这样的一条语句...如果您想仅获取最新记录,或根据其他条件,则可以指定ORDER BY:
INSERT INTO [LocalTableName]
SELECT TOP 1000 * FROM [remoteSqlServer\Instance].[DatabaseName].[schema].[RemoteTableName]
同样,替换服务器实例,数据库名称,模式(可能是“ dbo”)和表名称。
如果您的表包含任何IDENTITY或TIMESTAMP列,则必须实际列出所有列,但INSERT语句中的这些列除外,而不是SELECT语句中的*。
我希望这有帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句