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

Dlo*_*ker 6 sql t-sql sql-server sql-server-2005 openquery

我正在编写一个应该在一堆服务器上运行的脚本,并从中选择一堆数据,包括本地服务器.SELECT我需要的数据所需的SQL非常复杂,所以我正在编写一种特殊的视图,并使用OPENQUERY语句来获取数据,所以最终我最终循环遍历这样的语句:

exec('INSERT INTO tabl SELECT * FROM OPENQUERY(@Server, @AdHocView)')
Run Code Online (Sandbox Code Playgroud)

但是,我听说在本地服务器上使用OPENQUERY是不受欢迎的.有人可以详细说明原因吗?

OMG*_*ies 6

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

参考: