注册账号 登录
用友之家-用友软件论坛 返回首页

wozengcong的个人空间 https://www.oyonyou.com/?242966 [收藏] [复制] [分享] [RSS]

日志

exec sp_executesql的用法

已有 681 次阅读2012-7-5 23:56 |个人分类:SQL数据库资料

/***************输入一个参数********************/
declare @sql Nvarchar(1000)
declare @tt int
declare @t1 int
set @t1=55;
--set @sql=N' insert into @ab select 2'
exec sp_executesql
   N'select @t2' --执行的语句,若是变量的话,只可以是Nvarchar变量   
   ,N'@t2 int' --声明执行语句内的参数,若是变量的话,只可以是Nvarchar变量
   ,@t2=@t1 --为语句内的参数赋值,左边是语句内的参数,右边是值。
/****************输入多个参数********************/
declare @sql Nvarchar(1000)
declare @tt int
declare @t1 int
set @t1=55;
--set @sql=N' insert into @ab select 2'
exec sp_executesql
   N'select @t2,@t1' --执行的语句,若是变量的话,只可以是Nvarchar变量
   ,N'@t2 int,@t1 int' --声明执行语句内的参数,若是变量的话,只可以是Nvarchar变量  
   ,@t2=@t1,@t1=88   --为语句内的参数赋值,左边是语句内的参数,右边是值。
/**************只输出一个参数*********************/
declare @sql Nvarchar(1000)
declare @tt2 int
--set @sql=N' insert into @ab select 2'
exec sp_executesql
   N'select @t2=200' --执行的语句,若是变量的话,只可以是Nvarchar变量
   ,N'@t2 int output' --声明执行语句内的参数,若是变量的话,只可以是Nvarchar变量  
   ,@tt2 output   --外部变量接收输出output。
select @tt2

/**********同时输入参数又输出参数************/
--declare @tab table(cc int)
declare @sql Nvarchar(1000)
declare @tt int
declare @t1 int
set @t1=50;
--set @sql=N' insert into @ab select 2'
exec sp_executesql
   N'select @tt2=@t2+@t3'   --执行的语句,若是变量的话,只可以是Nvarchar变量
   ,N'@t2 int,@t3 int,@tt2 int output' --为语句内的参数赋值,左边是语句内的参数,右边是值。
   ,@t2=@t1,@t3=50,@tt2=@tt output --语句内的参数赋值--左边是语句内的参数,右边是值。
        --输出参数--声名外部的接收变量,因为有了输入参数,因此必须指明那个语句内变量为输出变量.
select @tt

 


路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册账号

QQ|站长微信|Archiver|手机版|小黑屋|用友之家 ( 蜀ICP备07505338号|51072502110008 )

GMT+8, 2024-6-5 19:52 , Processed in 0.023009 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

返回顶部