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