將這一行set @sql='update #temp set course='''+@course+'''where ID='''+@ID+''
改為以下試一下
set @sql='update #temp set course='+@course+'where ID='+@ID

解决方案 »

  1.   

    CREATE procedure ModCourse
    @tablename varchar(80),
    @course varchar(50),
    @chengji numeric(10,2),
    @ID int
    AS
    declare @sql varchar(3000)
    set @sql='select * into #temp from '+@tablename
    exec(@sql)
    set @sql='update #temp set course='''+@course+'''where ID='''+cast(@ID as varchar)+''
    exec(@sql)
    set @sql='insert into'+@tablename +'select * from #temp'
    exec(@sql)
    GO
      

  2.   

    所影响的行数为 1 行)服务器: 消息 105,级别 15,状态 1,行 1
    字符串 '9' 之前有未闭合的引号。
    服务器: 消息 170,级别 15,状态 1,行 1
    第 1 行: '9' 附近有语法错误。
    服务器: 消息 170,级别 15,状态 1,行 1
    第 1 行: '*' 附近有语法错误。
    存储过程: document_sh.dbo.ModCourse
    返回代码 = 0