1

首先让我说我是SQL和脚本方面的绝对菜鸟,所以请像对待小孩一样与我交谈。;)

我有大量包含表的数据库,我必须在这些表中替换特定列中的用户信息。

旧:实例 A;数据库 B、C、D、...;表 E;F、G、H、...列;值 1,2,3,...

新:实例 A;数据库 B、C、D、...;表 E;F、G、H、...列;值 1a,2a,3a,...

有没有人可以给我一点希望和帮助?这项工作的规模是 3000 个数据库,所以我必须编写脚本。

我感谢任何形式的帮助。

4

3 回答 3

0

我相信这样的东西是你正在寻找的。

UPDATE b
  SET a.col1 = b.col1
     ,a.col2 = b.col2
  FROM myTableA AS a
  INNER JOIN myTableB AS b
    ON a.key1 = b.key1

这里有更多示例:如何在 SQL 中使用 JOIN 执行 UPDATE 语句?

在“根据其他表中的数据更新数据”下还有一个 JOIN 示例:http: //msdn.microsoft.com/en-us/library/ms177523.aspx

于 2013-05-21T14:17:28.947 回答
0
UPDATE TableE
SET ColumnF =  ColumnF + 'a',
    ColumnG =  ColumnG + 'a'
WHERE Clause...
于 2013-05-21T12:06:17.913 回答
0

试试这个查询批量更新脚本。

select  'IF  EXISTS(SELECT * FROM SYS.OBJECTS WHERE  OBJECT_ID = OBJECT_ID(N'''+
'['+d.name+'].['+SCHEMA_NAME(schema_id)+'].[ '+t.name+']'''+ '))'+
'BEGIN update ['+d.name+'].['+SCHEMA_NAME(schema_id)+'].['+t.name+'] SET '+c.name+ ' = '+c.name+ '+ ''a'''+ ' END'
FROM sys.databases d,sys.tables AS t
INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
WHERE c.name in('F','G','H')
        and t.name='table_E';
于 2013-05-22T07:58:18.507 回答