执行动态sql返回参数
2024-10-19 00:19:55
ref: https://support.microsoft.com/en-us/kb/262499
DECLARE @SQLString NVARCHAR(500)
DECLARE @ParmDefinition NVARCHAR(500)
DECLARE @IntVariable INT
DECLARE @Lastlname varchar(30)
SET @SQLString = N'SELECT @LastlnameOUT = max(lname)
FROM pubs.dbo.employee WHERE job_lvl = @level'
SET @ParmDefinition = N'@level tinyint,
@LastlnameOUT varchar(30) OUTPUT'
SET @IntVariable = 35
EXECUTE sp_executesql
@SQLString,
@ParmDefinition,
@level = @IntVariable,
@LastlnameOUT=@Lastlname OUTPUT
SELECT @Lastlname ------------------------------------------------------------- CREATE PROCEDURE Myproc
@parm nvarchar(10),
@parm1OUT nvarchar(30) OUTPUT,
@parm2OUT nvarchar(30) OUTPUT
AS
SELECT @parm1OUT=N'参数1parm 1' + @parm
SELECT @parm2OUT=N'参数2parm 2' + @parm
GO DECLARE @SQLString NVARCHAR(500)
DECLARE @ParmDefinition NVARCHAR(500)
DECLARE @parmIN nvarchar(10)
DECLARE @parmRET1 nvarchar(30)
DECLARE @parmRET2 nvarchar(30)
SET @parmIN=' returned'
SET @SQLString=N'EXEC Myproc @parm,
@parm1OUT OUTPUT, @parm2OUT OUTPUT'
SET @ParmDefinition=N'@parm nvarchar(10),
@parm1OUT nvarchar(30) OUTPUT,
@parm2OUT nvarchar(30) OUTPUT'
/*
EXECUTE sp_executesql
@SQLString,
@ParmDefinition,
@parm1OUT=@parmRET1 OUTPUT,@parm2OUT=@parmRET2 OUTPUT,
@parm=@parmIN
*/
--可以不指定参数名,但位置要正确
EXECUTE sp_executesql
@SQLString,
@ParmDefinition,
@parmIN, @parmRET1 OUTPUT, @parmRET2 OUTPUT
SELECT @parmRET1 AS "parameter 1", @parmRET2 AS "parameter 2"
GO drop procedure Myproc
最新文章
- 简单animate方法的封装
- css3控制标题字数超出的部分自动显示为“...”省略号
- Apizza可以进行本地调试,也可以进行跨域调试,但是需要chrome插件
- ADB连不上,ADB server didn't ACK问题,的解决
- 向SqlServer数据库插入数据
- apache一个IP多个站点的配置方法
- Codeforces Round #382 (Div. 2) D. Taxes 歌德巴赫猜想
- kettle常见问题解决
- 对python-rrdtool模块的浅研究。
- 【原创】Proxmark3系列教程1——PM3用法
- Mac Office 2016 破解
- jquery禁用a标签
- mysql 5.6 windows 启动脚本
- mysql运维
- BZOJ 1124: [POI2008]枪战Maf(构造 + 贪心)
- [django]梳理drf知识点2
- Images之base image
- 转:CRF++
- gitLab创建自己的私有库
- tensorflow 保存训练模型ckpt 查看ckpt文件中的变量名和对应值