我正在使用SQL Server 2005.我现在有一个特殊的需求。查询数据库中的所有表格
我有一个数据库,它又有几个表(> 50)。所有这些表都有一个类似的命名列,条件为。我想在数据库中的所有表中查询此列。
我在Google上找不到合适的解决方案。请帮帮我。
非常感谢提前:)
我正在使用SQL Server 2005.我现在有一个特殊的需求。查询数据库中的所有表格
我有一个数据库,它又有几个表(> 50)。所有这些表都有一个类似的命名列,条件为。我想在数据库中的所有表中查询此列。
我在Google上找不到合适的解决方案。请帮帮我。
非常感谢提前:)
也许这可以帮助你?
SELECT * FROM information_schema.tables
之后,您可以遍历所有表并查询您的列。
使用你做这样的事情凯文的建议下,然后执行它的输出。
DECLARE @ColumnName AS VARCHAR(20)
SET @ColumnName = 'MyColumn'
SELECT 'SELECT ' + @ColumnName + ' FROM ' + TABLE_NAME FROM information_schema.tables
我想你的意思是''SELECT'+ @ColumnName +'FROM'+ TABLE_NAME' – codeulike 2011-03-24 10:58:32
sp_msforeachtable @command1=N'SELECT ''?'', * from ? WHERE yourcol=''whatever'''
以上将在选定的数据库运行查询对每个表和打印表名+表中的条件,每列满足。如果它到达具有无效列的表,它将继续前进(但打印出错信息)。
听起来像你需要修复你的数据库架构。 – 2011-03-24 10:13:43
我只是想要一个综合的结果查询该特定列上的所有表上的一个ondition。 – 2011-03-24 10:46:50
这不会是简单的事情,因为这不是数据库应该如何工作。如果发现自己需要这样做,这是一个强烈的信号,表明你的模式不适合你的需求。如果没有关于该专栏是什么的更多信息以及为什么所有表都有它,那么很难提供更多的帮助。 – 2011-03-24 10:50:18