把当中那句 换成这样 
set @StrSql = 'update '+ @table +' set Object_Name = '''+ @Object_Name + '''  where Object_Code = '''+ @Object_Code+''''
记得如果是赋值 两边要加引号,不加引号 ,会认为是列名

解决方案 »

  1.   

    DECLARE  upname  CURSOR  --声明游标


    FOR  SELECT name  FROM sysobjects  WHERE name like 'b%'    -------------游标的数据来源



    OPEN  upname --打开游标
    DECLARE  @table varchar(50),
     @Object_Name varchar(50),
     @StrSql      varchar(500),
     @Object_Code varchar(50)
    set @Object_Name = 'aa'
    set @Object_Code = 'rchd001'
     

    FETCH  NEXT  FROM   upname  INTO @table

    WHILE(@@FETCH_STATUS=0)   --判断是否读到数据,0表示读到数据

    BEGIN


    set @StrSql = 'update '+ @table +' set Object_Name = '''+ @Object_Name + '''  where Object_Code = '''+ @Object_Code+'''' exec (@StrSql) 

    FETCH  NEXT  FROM   upname  INTO @table

    END

    CLOSE  upname   ----------------关闭游标与数据的关联

    DEALLOCATE  upname  ---------------将游标对象删除