CREATE PROCEDURE proc_stop_user 
@puserid int
AS
exec('UPDATE t_user SET user_sex = ''2'',userid=userid+''psuit'' WHERE user_id = ' + @puserid)
GO

解决方案 »

  1.   

    CREATE PROCEDURE proc_stop_user 
    @puserid int
    AS
    exec('UPDATE t_user SET user_sex = ''2'',userid=userid+''psuit'' WHERE user_id = ' + cast(@puserid as varchar(20)))
    GO
      

  2.   

    exec('UPDATE t_user SET user_sex = ''2'',userid=userid+''psuit'' WHERE user_id = ' + cast(@puserid as varchar(20)))
    为什么呀一般好像不要EXEC的呀还有‘’2‘’,有这个必要吗。
      

  3.   

    问题在这:
    userid=userid+'psuit'
    userid为int类型,无法和'psuit'相加,会出现类型转换错误,除非userid为字符型
      

  4.   

    CREATE PROCEDURE proc_stop_user 
    @puserid int
    AS
    UPDATE t_user
       SET user_sex = '2',userid=userid+'psuit'
          WHERE user_id = @puserid
    GO没问题啊?是不是你的userid不是字符型?