首先让我说我是SQL和脚本方面的绝对菜鸟,所以请像对待小孩一样与我交谈。;)
我有大量包含表的数据库,我必须在这些表中替换特定列中的用户信息。
旧:实例 A;数据库 B、C、D、...;表 E;F、G、H、...列;值 1,2,3,...
新:实例 A;数据库 B、C、D、...;表 E;F、G、H、...列;值 1a,2a,3a,...
有没有人可以给我一点希望和帮助?这项工作的规模是 3000 个数据库,所以我必须编写脚本。
我感谢任何形式的帮助。
我相信这样的东西是你正在寻找的。
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
UPDATE TableE
SET ColumnF = ColumnF + 'a',
ColumnG = ColumnG + 'a'
WHERE Clause...
试试这个查询批量更新脚本。
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';