首页 > 代码库 > sqlserver使用OpenQuery或OPENROWSET遇到的问题
sqlserver使用OpenQuery或OPENROWSET遇到的问题
OpenQuery,OPENROWSET允许用户在链接服务器上查询.通过这种方法来得到查询的结果集.
1.在创建存储过程中,必须设置
SET ANSI_NULLS ON
SET ANSI_WARNINGS ON
(在查询分析器中执行,将默认激活这些设置)
2.定义链接服务器(必须有sysadmin权限)
3.这个时候就可以使用
SELECT * FROM OPENQUERY(linkSERVER, ‘EXEC MyStoreProc‘)
来得到存储过程返回的结果集.
但是存储过程MyStoreProc不能访问临时表,
如果使用了临时表,必须如下调用
SELECT * FROM OPENQUERY(linkSERVER,‘SET FMTONLY OFF ; EXEC MyStoreProc‘)
通常来说,OPENQUERY只是作为一个快捷的远程数据库访问,它必须跟在select后面,也就是说需要返回一个recordset.
而加上set fmtonly off用来屏蔽默认的只返回列信息的设置之后,这样返回的output集合就会提交给前面的select显示。
如果采用默认设置,会返回空集合导致select出错,命令也就无法执行了
sqlserver使用OpenQuery或OPENROWSET遇到的问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。