在使用存储过程时,若动态的传递表名或者是列名时,可以考虑使用动态sql。代码如下;
alterprocedureProc_UpdateDatetimeCounter
@businessNumnvarchar(200),--业务号
@columnnvarchar(200),--列名
@valuedatetime--值
as
declare@sqlnvarchar(max)
set@sql=N'updatecounterset'+quotename(@column)+'=@value1wherebusinessNum=@businessNum1'
execsp_executesql@sql,
N'@value1asdatetime,@businessNum1asnvarchar(200)',
@value1=@value,
@businessNum1=@businessNum