行带嵌入参数的sql——sp_executesql
通常执行sql语句,大家用的都是exec,exec功能强大,但不支持嵌入参数,sp_executesql解决了这个问题。
语法[@stmt =] stmt
语法
sp_executesql [@stmt =] stmt
[
{, [@params =] N'@parameter_name data_type [,...n]' }
{, [@param1 =] 'value1' [,...n] }
]
参数
[@stmt =] stmt
declare @user varchar(1000)
declare @moTable varchar(20)
select @moTable = 'MT_10'declare @sql nvarchar(4000) --定义变量,注意类型
set @sql='select @user = count(distinct userid) from '+@moTable --为变量赋值--执行@sql中的语句
exec sp_executesql @sql ,N'@user varchar(1000) out' --表示@sql中的语句包含了一个输出参数
,@user out --和调用存储过程差不多,指定输出参数值print @user//
加密...............................
alter view tbv
with encryption
as
select id, xml_date from tb_xml exec sp_helptext tbv --对象 'tbv' 的文本已加密
declare @moTable varchar(20)
select @moTable = 'MT_10'declare @sql nvarchar(4000) --定义变量,注意类型
set @sql='select @user = count(distinct userid) from '+@moTable --为变量赋值--执行@sql中的语句
exec sp_executesql @sql ,N'@user varchar(1000) out' --表示@sql中的语句包含了一个输出参数
,@user out --和调用存储过程差不多,指定输出参数值print @user
with encryption
as
select id, xml_date from tb_xml
浙公网安备 33010602011771号