把 @sqlcommand 定义为nvarchar(200)

解决方案 »

  1.   

    这样试试alter PROCEDURE Pr_AddPoint
    (
        @ItemID int,    
        @RealPoint decimal(10),
        @ManagerID int,
        @ItemComment varchar(2000),
        @AssessAccord  varchar(2000),
        @ParentID int,
        @TableName varchar(64)
    )
    AS

    declare @sqlcommand varchar(8000)
    select @sqlcommand='insert into '+rtrim(@TableName)+'(ItemID,RealPoint,ManagerID,ItemComment,AssessAccord,ParentID) values('+rtrim(@ItemID)+','+rtrim(@RealPoint)+','+rtrim(@ManagerID)+','''+@ItemComment+''','''+@AssessAccord+''','+rtrim(@ParentID)+')'
    exec(@sqlcommand)
    go
      

  2.   

    declare @sqlcommand varchar(8000)
    ---------------------------------------此处加一个初始值
    Select @sqlcommand=''
    --------------------------------------------------------
    select @sqlcommand='insert into '+rtrim(@TableName)+'(ItemID,RealPoint,ManagerID,ItemComment,AssessAccord,ParentID) values('+rtrim(@ItemID)+','+rtrim(@RealPoint)+','+rtrim(@ManagerID)+','''+@ItemComment+''','''+@AssessAccord+''','+rtrim(@ParentID)+')'
    exec(@sqlcommand)
    如果还不行的话,可以将exec(@sqlcommand)更换成Select @sqlcommand,用来显示字符串内容,判断错误原因