sp_executesql接收返回多个参数实例

sp_executesql接收返回多个参数实例近日做项目中需要在EXEC执行Sql字符串时动态的传入参数并接收返回值,于是研究了一下SqlServer中sp_executesql的使用方法,并做了如下的例子。在使用sp_executesql动态传入与接收返回参数时需注意以下事项,以避免大家走弯路。例子中@SQLString,@ParmDefinition一定要使用NVARCHAR类型,否则会报“过程需要参数××××为ntext/n

大家好,又见面了,我是你们的朋友全栈君。

近日做项目中需要在EXEC执行Sql字符串时动态的传入参数并接收返回值,于是研究了一下SqlServer中sp_executesql的使用方法,并做了如下的例子。
在使用sp_executesql动态传入与接收返回参数时需注意以下事项,以避免大家走弯路。
例子中@SQLString,@ParmDefinition一定要使用NVARCHAR类型,否则会报“过程需要参数 ‘××××’ 为 ‘ntext/nchar/nvarchar’ 类型。”错误。
文档中说这两个变量赋值的字符串前要加N,我试了试,没加也不报错,不过你最好加上。毕竟人家是官方文档么。

sp_executesql接收返回多个参数实例
—
传递一个Int类型参数

sp_executesql接收返回多个参数实例

DECLARE
 
@IntVariable
 
INT

sp_executesql接收返回多个参数实例

DECLARE
 
@SQLString
 
NVARCHAR
(
500
)
sp_executesql接收返回多个参数实例

DECLARE
 
@ParmDefinition
 
NVARCHAR
(
500
)
sp_executesql接收返回多个参数实例
sp_executesql接收返回多个参数实例

SET
 
@SQLString
 
=
 N
‘
SELECT * FROM pubs.dbo.employee WHERE job_lvl = @level
‘

sp_executesql接收返回多个参数实例

SET
 
@ParmDefinition
 
=
 N
‘
@level tinyint
‘

sp_executesql接收返回多个参数实例

SET
 
@IntVariable
 
=
 
35

sp_executesql接收返回多个参数实例

EXECUTE
 sp_executesql 
@SQLString
, 
@ParmDefinition
,
@level
 
=
 
@IntVariable

sp_executesql接收返回多个参数实例

—
SET @IntVariable = 32

sp_executesql接收返回多个参数实例—

EXECUTE sp_executesql @SQLString, @ParmDefinition,@level = @IntVariable

sp_executesql接收返回多个参数实例—

—————————————————————————–

sp_executesql接收返回多个参数实例—

传递一个varchar类型参数

sp_executesql接收返回多个参数实例

DECLARE
 
@VarVariable
 
varchar
(
500
)
sp_executesql接收返回多个参数实例

DECLARE
 
@SQLString
 
NVARCHAR
(
500
)
sp_executesql接收返回多个参数实例

DECLARE
 
@ParmDefinition
 
NVARCHAR
(
500
)
sp_executesql接收返回多个参数实例
sp_executesql接收返回多个参数实例

SET
 
@SQLString
 
=
 N
‘
SELECT * FROM pubs.dbo.employee WHERE fname = @VarVariable
‘

sp_executesql接收返回多个参数实例

SET
 
@ParmDefinition
 
=
 N
‘
@VarVariable varchar(500)
‘

sp_executesql接收返回多个参数实例

SET
 
@VarVariable
 
=
 
‘
Helen
‘

sp_executesql接收返回多个参数实例

EXECUTE
 sp_executesql 
@SQLString
, 
@ParmDefinition
,
@VarVariable

sp_executesql接收返回多个参数实例

—
—————————————————————————–

sp_executesql接收返回多个参数实例—

传递两个参数,一个varchar类型参数接收返回值,一个Int类型参数

sp_executesql接收返回多个参数实例

DECLARE
 
@VarVariable
 
VARCHAR
(
500
)
sp_executesql接收返回多个参数实例

DECLARE
 
@IntVariable
 
INT

sp_executesql接收返回多个参数实例

DECLARE
 
@SQLString
 
NVARCHAR
(
500
)
sp_executesql接收返回多个参数实例

DECLARE
 
@ParmDefinition
 
NVARCHAR
(
500
)
sp_executesql接收返回多个参数实例
sp_executesql接收返回多个参数实例

SET
 
@SQLString
 
=
 N
‘
SELECT @VarVariable = Count(*) FROM pubs.dbo.employee WHERE job_lvl = @IntVariable
‘

sp_executesql接收返回多个参数实例

SET
 
@IntVariable
 
=
 
35

sp_executesql接收返回多个参数实例

SET
 
@ParmDefinition
 
=
 N
‘
@VarVariable VARCHAR(500) OUT,@IntVariable INT
‘

sp_executesql接收返回多个参数实例

SET
 
@VarVariable
 
=
 
‘
Helen
‘

sp_executesql接收返回多个参数实例

EXECUTE
 sp_executesql 
@SQLString
,
@ParmDefinition
,
@VarVariable
 OUT,
@IntVariable

sp_executesql接收返回多个参数实例

print
 
@VarVariable
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/143680.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 关于尺度空间的理解和认识_尺度空间理论

    关于尺度空间的理解和认识_尺度空间理论通常会听到尺度变化等这类词语,看到的也总是一堆的数学公式,有时候真的不知道这到底有啥用,有啥意义,没有弄懂这些意义,当然就更不可能的理解,不可能去掌握应用它了,现在我才理解,小波变化其实也是一种尺度变化。今天我看到一篇南航数学系写的关于尺度空间解释的文章,感觉很通俗易懂,我们不从数学上来推倒什么是尺度空间,只是从生活常识方面来解释尺度空间的意义,意义懂了,数学方面自然就好理解了。       

    2022年10月11日
  • docker-compose教程(安装,使用, 快速入门)

    docker-compose教程(安装,使用, 快速入门)教程基于ubuntu下最新的compose版本3参考:https://docs.docker.com/compose/overview/1.Compose介绍DockerCompose是一个用来定义和运行复杂应用的Docker工具。一个使用Docker容器的应用,通常由多个容器组成。使用DockerCompose不再需要使用shell脚本来启动容器。Compose通过一个配…

    2022年6月14日
  • 26款 流媒体服务器开源软件「建议收藏」

    26款 流媒体服务器开源软件「建议收藏」26款流媒体服务器开源软件1Flash流媒体服务器Red52DarwinStreamingServer3流媒体服务器OpenStreamingServer4MPEG4IP5开源流媒体平台FreeCast6

    2022年5月6日
  • 一看你就懂,超详细java中的ClassLoader详解

    一看你就懂,超详细java中的ClassLoader详解本篇文章已授权微信公众号guolin_blog(郭霖)独家发布ClassLoader翻译过来就是类加载器,普通的java开发者其实用到的不多,但对于某些框架开发者来说却非常常见。理解ClassLoader的加载机制,也有利于我们编写出更高效的代码。ClassLoader的具体作用就是将class文件加载到jvm虚拟机中去,程序就可以正确运行了。但是,jvm启动的时候,并不会一次性加载所有的…

    2022年4月27日
  • 华硕老毛子Padavan使用IPV6+Aliddns远程管理路由

    华硕老毛子Padavan使用IPV6+Aliddns远程管理路由华硕老毛子Padavan使用IPV6远程管理路由前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas是基于NumPy的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):importnumpyasnpimportpandasaspdimportmatplotlib.pyplotaspltimportseaborna

    2022年6月5日
  • VUE中diff比较

    VUE中diff比较

    2021年6月28日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号