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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 一文教你检测MOS管好坏的五大诀窍「建议收藏」

    MOS管是金属—氧化物-半导体场效应晶体管,或者称是金属—绝缘体—半导体。MOS管因导通压降下,导通电阻小,栅极驱动不需要电流,损耗小,价格便宜等优点在电子行业深受人们的喜爱与追捧,随着电子行业飞跃式的发展,MOS管的需求量也越来越大,就在此时一批批MOS管生产厂家如雨后春笋般涌现到我们的眼前,他们的出现瞬间使得MOS管的质量的急速下滑,由于这些厂家的技术不成熟,而且当中也掺杂了许多山寨的MOS管…

  • Java基础之增强型for循环

    Java基础之增强型for循环目录增强型for循环语法:for(ElementTypeelement:arrayName){};增强for循环的原理增强型for循环注意事项增强型for循环语法:for(ElementTypeelement:arrayName){};举个例子:(1)int[]numArray={1,2,3,4,5,6};for(inti:numArray…

  • springboot框架的理解_谈谈你对springmvc的理解

    springboot框架的理解_谈谈你对springmvc的理解1.起源SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,就是SpringBoot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像Maven整合了所有的Jar包,SpringBoot整合了所有的框…

  • 40OutputStreamWriter

    40OutputStreamWriter写的转换流,写我们相要写的编码文件java.io.OutputStreamWriteretendsWriterInputStreamReader是字节流通向字符流的桥梁,它使用指定的Charset将要写入流中的字符编码成字节。(编码:把能看懂的变成看不懂的)继承父类,共性成员方法:voidwrite(intc)写入单个字符voidwrite(char[])写入字符数组abstractvoidwriter(char[]cbuf,intoff,intlen)…

  • 振动信号的阶次分析方法_振动频谱图

    振动信号的阶次分析方法_振动频谱图此示例说明如何使用阶次分析来分析振动信号。阶次分析用于量化转速随时间变化的旋转机械中的噪声或振动。阶次指的是参考转速的某个倍数的频率。例如,频率等于发动机旋转频率两倍的振动信号对应的是阶次2,同样,频率等于发动机旋转频率0.5倍的振动信号对应的是阶次0.5。此示例通过确定大振幅的阶次来调查直升机舱中不必要的振动的来源。简介此示例分析在主发动机加速和减速过程中,来自直升机舱中加速度计的仿真振动数据。直升机有几个旋转部件,包括发动机、变速箱、主旋翼和尾旋翼。每个部………

    2022年10月10日
  • FastCGI协议内容「建议收藏」

    FastCGI协议内容「建议收藏」cgi或者fastcgi协议的定义:Webserver(web服务器软件如nginxhttpd等)与真实后台处理请求的程序之间通信的一种约定规范找了一篇文章把fastcgi协议讲得比较清楚,记录一下。原文地址:https://www.cnblogs.com/itbsl/p/9828776.html#%E5%86%8D%E7%9C%8B-fastcgi-%E5%8D…

发表回复

您的电子邮箱地址不会被公开。

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