作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道如何在 SQL 脚本中从另一个 SQL Server 实例的表中查询数据。
我正在编写在 127.0.0.1\SQLINSTANCE1
上运行的 sql 脚本,但在脚本内部将从 127.0.0.2\SQLINSTANCE2
选择数据,然后返回结果数据作为计算的一部分。
Google 搜索后,似乎使用了 sp_addlinkedserver
和 sp_addlinkedsrvlogin
存储过程来执行此操作,但不幸的是没有完整的示例工作。
我在这里有一些工作,但没有按预期工作。例如,当再次执行时,会弹出一些错误,例如服务器已链接。但是我如何执行这个脚本来链接服务器然后放弃它?
DECLARE @remoteserver VARCHAR = '127.0.0.2\SQLINSTANCE2';
EXEC master.sys.sp_addlinkedserver @server = @remoteserver
, @srvproduct = 'SQL Server';
EXEC master.sys.sp_addlinkedsrvlogin @rmtsrvname = @remoteserver
, @useself = 'false'
, @locallogin = NULL
, @rmtuser = 'sa'
, @rmtpassword = 'password';
另一方面,如何为这个丑陋的远程服务器名称创建别名?我宁愿使用一些优雅的名称,例如 RS in select * from [RS].[db].[dbo].[table]
最佳答案
你确实可以使用
OPENDATASOURCE
或
OPENROWSET
请注意,您必须打开临时分布式查询选项:
sp_configure 'show advanced options', 1;
RECONFIGURE;
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO
关于sql - 如何在sql脚本中从另一个sql server服务器表中选择数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18651768/
我是一名优秀的程序员,十分优秀!