行带嵌入参数的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' 的文本已加密

你可能感兴趣的:(execute)