行带嵌入参数的sql——sp_executesql

通常执行sql语句,大家用的都是exec,exec功能强大,但不支持嵌入参数,sp_executesql解决了这个问题。
语法

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' 的文本已加密

posted on 2009-08-30 22:08  博览潇湘  阅读(310)  评论(0)    收藏  举报

导航