暂无图片
暂无图片
1
暂无图片
暂无图片
1
暂无图片

【译】SQLSERVER-在SELECT语句中使用存储过程

原创 沐言倾心 2022-05-21
3240

原文地址:https://blog.sqlauthority.com/2022/02/08/sql-server-using-stored-procedure-in-select-statement/
原文作者:Pinal Dave

我经常在综合数据库性能运行状况检查期间收到一个频率较高的问题:如何在SELECT语句中使用存储过程。当然,有很多方法可以做到这一点,今天,让我们来学习最简单的方法。
图片.png

在SELECT语句中获取存储过程的结果有许多不同的方法,例如创建临时表、创建表变量、使用函数等。但是,我们将在此文提到在SELECT语句中运行存储过程的最简单方法。
如下是我们想要使用的存储过程:

EXEC [AdventureWorks].[dbo].[uspGetManagerEmployees] 5
GO
复制

可以在OPENROWSET函数的帮助下执行以下SELECT语句并执行该存储过程。

SELECT *
FROM OPENROWSET('SQLNCLI',
'server=localhost;trusted_connection=yes;',
'EXEC [AdventureWorks].[dbo].[uspGetManagerEmployees] 5')
GO
复制

确实是这么简单。当使用OPENROWSET函数执行SELECT语句时,如果收到有关ad hoc queries(即席查询)的错误信息,您可以通过执行以下命令来修复该错误。
如下为原报错信息:
Msg 15281, Level 16, State 1
SQL Server blocked access to STATEMENT ‘OpenRowset/OpenDatasource’ of component ‘Ad Hoc Distributed Queries’ because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of ‘Ad Hoc Distributed Queries’ by using sp_configure. For more information about enabling ‘Ad Hoc Distributed Queries’, search for ‘Ad Hoc Distributed Queries’ in SQL Server Books Online.

对原报错信息的翻译:
消息 15281,级别 16,状态 1
SQL Server 阻止访问组件“即席分布式查询”的语句“OpenRowset/OpenDatasource”,因为此组件作为此服务器安全配置的一部分处于关闭状态。系统管理员可以使用sp_configure启用“即席分布式查询”。有关启用“即席分布式查询”的详细信息,请在SQL Server联机丛书中搜索“即席分布式查询”。

修复此错误信息的脚本如下:

sp_configure 'Show Advanced Options', 1
GO
RECONFIGURE
GO
sp_configure 'Ad Hoc Distributed Queries', 1
GO
RECONFIGURE
GO
复制

相关概念:
1.OPENROWSET函数:返回行集,SQLServer2019中对此函数的详细介绍可参考这里:https://docs.microsoft.com/en-us/sql/t-sql/functions/openrowset-transact-sql?redirectedfrom=MSDN&view=sql-server-ver15
2. Ad hoc queries,即席查询:用户根据自己的需求,灵活的选择查询条件,系统能够根据用户的选择生成相应的统计报表,与普通应用查询不同的是,普通应用查询是定制开发,而即席查询是由用户自定义查询条件的。

今天就讲到这里。了解在SELECT语句中使用存储过程是不是很简单呀?如果您希望我创建有关此主题的视频,请在此文章中发表评论,我很乐意这样做。

以下是我最近的一些视频,我想知道您对这些视频的反馈是什么。不要忘记订阅SQL在六十秒内系列。我希望您可以在六十秒系列视频中学到您想要的。

如果您有任何疑问,可以在Twitter上联系我。
参考链接:Pinal Dave( https://blog.sqlauthority.com/

最后修改时间:2022-05-31 23:21:25
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
1人已赞赏
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

墨天轮福利君
暂无图片
2年前
评论
暂无图片 0
您好,您已成功参与“墨力翻译计划”(https://www.modb.pro/db/336535),有机会入选“月度最佳译文”🏆 💪加油,辛勤译者、月度翻译官等你角逐!
2年前
暂无图片 点赞
评论