我正在编写一个脚本,该脚本应该在一堆服务器周围运行,并从其中选择一堆数据,包括本地服务器。选择所需数据的SQL非常复杂,因此我正在编写临时 View ,并使用OPENQUERY语句获取数据,因此最终我最终遍历了以下语句:

exec('INSERT INTO tabl SELECT * FROM OPENQUERY(@Server, @AdHocView)')

但是,我听说在本地服务器上使用OPENQUERY是一种皱眉。有人能详细说明为什么吗?

最佳答案

  • 尽管查询可能返回多个结果集,但OPENQUERY仅返回第一个结果集。
  • OPENQUERY不接受变量作为其参数。
  • OPENQUERY无法用于在链接服务器上执行扩展存储过程。但是,可以使用四部分名称在链接服务器上执行扩展存储过程。
  • 如果在同一脚本中使用了sp_addlinkedserver存储过程,则将远程服务器上使用的凭据硬编码到脚本中,任何拥有
  • 副本的人都可以看到

    引用:
  • OPENQUERY
  • 10-05 19:19