我正在编写一个脚本,该脚本应该在一堆服务器周围运行并从中选择一堆数据,包括本地服务器。选择我需要的数据所需的 SQL 非常复杂,所以我正在编写一种临时 View ,并使用 OPENQUERY 语句来获取数据,所以最终我最终会循环这样的语句:
exec('INSERT INTO tabl SELECT * FROM OPENQUERY(@Server, @AdHocView)')
但是,我听说在本地服务器上使用 OPENQUERY 是不受欢迎的。有人可以详细说明为什么吗?
最佳答案
- 虽然查询可能返回多个结果集,但 OPENQUERY 仅返回第一个结果集。
- OPENQUERY 不接受变量作为其参数。
- OPENQUERY 不能用于在链接服务器上执行扩展存储过程。但是,可以使用四部分名称在链接服务器上执行扩展存储过程。
- 如果在同一脚本中使用
sp_addlinkedserver
存储过程,远程服务器上使用的凭据将被硬编码到脚本中,任何拥有副本的人都可以看到
引用:
关于sql - 为什么在本地服务器上使用 OPENQUERY 不好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2374741/