CREATE PROCEDURE [up_wch] @c31 char(2),@m31 int
AS
declare @s nvarchar(4000)
set @s='update tr_shch1 set a'+cast(@c31 as varchar)
+'_wch = a'++cast(@c31 as varchar)+'_wch + @m31'
exec sp_executesql @s,N'@m31 int',@m31

解决方案 »

  1.   

    --也不会是那个错误吧?CREATE PROCEDURE [up_wch] @c31 char(2),@m31 int
    AS
    declare @s nvarchar(4000)
    set @s='update tr_shch1 set a'+rtrim(@c31)
    +'_wch = a'+rtrim(@c31)+'_wch + @m31'
    exec sp_executesql @s,N'@m31 int',@m31
    go
      

  2.   

    --测试--测试表
    create table tr_shch1(a1_wch int)
    goCREATE PROCEDURE [up_wch] @c31 char(2),@m31 int
    AS
    declare @s nvarchar(4000)
    set @s='update tr_shch1 set a'+rtrim(@c31)
    +'_wch = a'+rtrim(@c31)+'_wch + @m31'
    exec sp_executesql @s,N'@m31 int',@m31
    go
    exec up_wch '1',122drop proc up_wch
    drop table tr_shch1/*--测试结果(所影响的行数为 0 行)--*/