sql 使用存储过程传递列名或表名作为参数

     在使用存储过程时,若动态的传递表名或者是列名时,可以考虑使用动态sql。代码如下;

  

 
alter procedure Proc_UpdateDatetimeCounter
@businessNum nvarchar(200),--业务号
@column nvarchar(200),--列名
@value datetime--值
as
declare @sql nvarchar(max)
set @sql = N'update counter set '+quotename(@column)+'= @value1 where businessNum = @businessNum1'
 exec sp_executesql @sql,
                    N'@value1 as datetime,@businessNum1 as nvarchar(200)',
                    @value1 = @value,
                    @businessNum1 = @businessNum

   

posted on 2011-09-23 14:04  wtq  阅读(5850)  评论(0编辑  收藏  举报