sql - 为什么在本地服务器上使用 OPENQUERY 不好?

标签 sql sql-server sql-server-2005 tsql openquery

我正在编写一个脚本,该脚本应该在一堆服务器周围运行并从中选择一堆数据,包括本地服务器。选择我需要的数据所需的 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/

相关文章:

sql - 不同表的查询

sql - 将表达式转换为数据类型日期时间时出现算术溢出错误

.net - 从 MS SQL 数据库获取 XML 模式

sql - 调整 mysql 查询以获得更好的性能

sql-server - python - 用于增加存储过程参数中包大小的pyodbc设置

sql - 将 2 个表的日期范围合并为一个表

sql - 向现有表添加唯一 ID 和 PK

mysql - 选择不包括今天的日期范围

mysql - 比较不同列时获得最低值

sql - 从sqlite数据库中删除重复行