/***************输入一个参数********************/
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

posted on 2012-04-13 11:22  slc  阅读(1727)  评论(0编辑  收藏  举报