2011-03-24 61 views
0

我正在使用SQL Server 2005.我现在有一个特殊的需求。查询数据库中的所有表格

我有一个数据库,它又有几个表(> 50)。所有这些表都有一个类似的命名列,条件为。我想在数据库中的所有表中查询此列。

我在Google上找不到合适的解决方案。请帮帮我。

非常感谢提前:)

+3

听起来像你需要修复你的数据库架构。 – 2011-03-24 10:13:43

+0

我只是想要一个综合的结果查询该特定列上的所有表上的一个ondition。 – 2011-03-24 10:46:50

+1

这不会是简单的事情,因为这不是数据库应该如何工作。如果发现自己需要这样做,这是一个强烈的信号,表明你的模式不适合你的需求。如果没有关于该专栏是什么的更多信息以及为什么所有表都有它,那么很难提供更多的帮助。 – 2011-03-24 10:50:18

回答

0

也许这可以帮助你?

SELECT * FROM information_schema.tables 

之后,您可以遍历所有表并查询您的列。

0

使用你做这样的事情凯文的建议下,然后执行它的输出。

DECLARE @ColumnName AS VARCHAR(20) 
SET @ColumnName = 'MyColumn' 

SELECT 'SELECT ' + @ColumnName + ' FROM ' + TABLE_NAME FROM information_schema.tables 
+1

我想你的意思是''SELECT'+ @ColumnName +'FROM'+ TABLE_NAME' – codeulike 2011-03-24 10:58:32

0
sp_msforeachtable @command1=N'SELECT ''?'', * from ? WHERE yourcol=''whatever''' 

以上将在选定的数据库运行查询对每个表和打印表名+表中的条件,每列满足。如果它到达具有无效列的表,它将继续前进(但打印出错信息)。

相关问题