博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sp_executesql接收返回多个参数实例
阅读量:7061 次
发布时间:2019-06-28

本文共 1735 字,大约阅读时间需要 5 分钟。

hot3.png

近日做项目中需要在EXEC执行Sql字符串时动态的传入参数并接收返回值,于是研究了一下SqlServer中sp_executesql的使用方法,并做了如下的例子。

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

--传递一个Int类型参数

DECLARE @IntVariable INT
DECLARE @SQLString NVARCHAR(500)
DECLARE @ParmDefinition NVARCHAR(500)
SET @SQLString = N'SELECT * FROM pubs.dbo.employee WHERE job_lvl = @level'
SET @ParmDefinition = N'@level tinyint'
SET @IntVariable = 35
EXECUTE sp_executesql @SQLString, @ParmDefinition,@level = @IntVariable
--SET @IntVariable = 32
--EXECUTE sp_executesql @SQLString, @ParmDefinition,@level = @IntVariable
-------------------------------------------------------------------------------
--传递一个varchar类型参数
DECLARE @VarVariable varchar(500)
DECLARE @SQLString NVARCHAR(500)
DECLARE @ParmDefinition NVARCHAR(500)
SET @SQLString = N'SELECT * FROM pubs.dbo.employee WHERE fname = @VarVariable'
SET @ParmDefinition = N'@VarVariable varchar(500)'
SET @VarVariable = 'Helen'
EXECUTE sp_executesql @SQLString, @ParmDefinition,@VarVariable
-------------------------------------------------------------------------------
--传递两个参数,一个varchar类型参数接收返回值,一个Int类型参数
DECLARE @VarVariable VARCHAR(500)
DECLARE @IntVariable INT
DECLARE @SQLString NVARCHAR(500)
DECLARE @ParmDefinition NVARCHAR(500)
SET @SQLString = N'SELECT @VarVariable = Count(*) FROM pubs.dbo.employee WHERE job_lvl = @IntVariable'
SET @IntVariable = 35
SET @ParmDefinition = N'@VarVariable VARCHAR(500) OUT,@IntVariable INT'
SET @VarVariable = 'Helen'
EXECUTE sp_executesql @SQLString,@ParmDefinition,@VarVariable OUT,@IntVariable
print @VarVariable

转载于:https://my.oschina.net/u/2343604/blog/407083

你可能感兴趣的文章
USB OTG & WUSB
查看>>
jquery ajax return值 没有返回 的解决方法
查看>>
idea 自动提示生成 serialVersionUID
查看>>
搜索引擎——用户搜索意图的理解及其难点解析,本质是利用机器学习用户的意图分类...
查看>>
【swift学习笔记】五.使用枚举优雅的管理Segue
查看>>
halcon学习笔记——(9)摄像机标定
查看>>
linux ps top 命令 VSZ,RSS,TTY,STAT, VIRT,RES,SHR,DATA的含义【转】
查看>>
session创建问题
查看>>
嵌套类
查看>>
一网友推荐的书:框架设计(第2版):CLR Via C#
查看>>
BAT及各大互联网公司2014前端笔试面试题--Html,Css篇
查看>>
《MySQL必知必会》笔记 事务、安全及性能等
查看>>
全新的membership框架Asp.net Identity(2)——绕不过的Claims
查看>>
Android视图篇之一:Android常见基本布局
查看>>
Git 基本使用
查看>>
解决kindediter中的iframe用ipad访问时无法滚动的问题
查看>>
《博客园精华集》分类索引
查看>>
ASP.NET开源框架之HIPPO技术内幕(六)--后台管理与前台展示
查看>>
Newtonsoft.Json 序列化和反序列化 时间格式
查看>>
SharePoint 2013 企业搜索架构示例
查看>>