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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

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

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