就是不能这样写
update  A set Name='张三'
update  B set Name='张三'
update  C set Name='张三'
update  D set Name='张三'
update  E set Name='张三'
update  E set Name='张三'
要改为一个语句  
update @TableName set Name='张三'

解决方案 »

  1.   

    DECLARE @sql varchar(max)
    SET @sql = 'update '+@TableName+' set Name=''张三'''
    EXEC(@sql)
      

  2.   

    首先呢  我新建个表  比如test这表中主要存储其他表名称(ABCDEF)这几个表,select  TableName from test  获取所有表名称  怎么循环以下语句
    DECLARE @sql varchar(max)
    SET @sql = 'update '+@TableName+' set Name=''张三'''
    EXEC(@sql)
      

  3.   

    首先呢  我新建个表  比如test这表中主要存储其他表名称(ABCDEF)这几个表,select  TableName from test  获取所有表名称  怎么循环以下语句
    DECLARE @sql varchar(max)
    SET @sql = 'update '+@TableName+' set Name=''张三'''
    EXEC(@sql)
      

  4.   

    DECLARE @sql varchar(max)SELECT @sql = ISNULL(@sql,'')+'update '+TableName+' set Name=''张三'';'
      FROM testEXEC(@sql)
      

  5.   

    DECLARE @sql varchar(max)
     
    SELECT @sql = ISNULL(@sql,'')+'update '+TableName+' set Name=''张三'';'
      FROM test
     
    EXEC(@sql)
    这个怎么循环呢   好像不能循环表名把   TableName你是从哪来的
      

  6.   

    test表啊。
    你用 PRINT @sql,看看拼出来的语句。
      

  7.   

    DECLARE @sql varchar(max)
     
    SELECT @sql = ISNULL(@sql,'')+'update '+TableName+' set Name=''张三'';'
      FROM test
     
    EXEC(@sql)
    DECLARE @sql varchar(max)
    set @Sannianfu='968D0714-629E-4884-86B1-EEC3436E508F' --三年付
    SELECT @sql = ISNULL(@sql,'')+'update '+TableName+' set
    Next_Pay_Month=
    (
     case when PayType_Code=@Sannianfu then dateadd(month,36,Next_Pay_Month) else '' end  
    ) ;' FROM Product_TableList
     
    EXEC(@sql)PRINT @sql我试了下 没问题    还有个问题是  我要把Name=''张三''  换成带声明变量的参数     说没有@Sannianfu  声明  上面不是有吗
      

  8.   

    SELECT @sql = ISNULL(@sql,'')+'update '+TableName+' set
    Next_Pay_Month=
    (
     case when PayType_Code='''+@Sannianfu+''' then dateadd(month,36,Next_Pay_Month) else '' end  
    ) ;'
     FROM Product_TableList