2015-06-03 141 views
0

我需要编写一个查询值:重复的记录,并为该列名

  1. 发现的所有数据库中列名的所有实例
  2. 重复所有包含此列名称的记录会根据该列名称的值更改列名称的值。

所以输入会的ColumnName,ColumnNameValue,ColumnNameNewValue

我发现这个查询这里http://sqlserverplanet.com/dba/find-column-in-all-databases返回查询我需要的第一部分,但我不知道如何去约做第2部分...

编辑:

与第2部分是我想要做的就是找到所有匹配ID和不同的ID复制它们在同一个表中的记录

因此,例如,我有这个表:

column1 column2 
1   aaa 
2   bbb 
2   ccc 
3   ddd 

我希望脚本查找包含“列1”(这是在第1部分完成),然后找出所有具有值的记录中的所有表“1”为列1,和复制一个新的ID“99”的记录,所以其结果必然是

column1 column2 
1   aaa 
2   bbb 
2   ccc 
3   ddd 
99   bbb 
99   ccc 
+0

获得#2帮助的问题是,你没有解释你正在尝试做什么。尝试解释你想做得更清楚,我们可以提供帮助。 –

回答

0

你有两种选择,查询信息模式对每个数据库,然后联合在一起的结果

select * from db1.information_Schema.columns 
union all 
select * from db2.information_Schema.columns 

或使用无证sp_MSforeachdb功能

EXEC sp_MSforeachdb 'select * from information_Schema.columns' 

当然,作为无证,它可能会改变,停止工作或无法正常工作,首先,这样你就需要接受这种风险。