2010-10-26 54 views
0

我已经多DBS具有相同的结构,我想对他们的循环来检查这个选择statment循环在SQL Server的所有数据库查询

select scan1,scan2,scan3 from customers where .............. 

输出将是数据库名称,如果这个选择有记录 像:

db1 
db2 
db3 

等等...

回答

0

感谢所有试图帮助我,但我找到了查询,并在这里它是,如果它可以帮助任何一个。

exec sp_MSforeachdb 
' 
if "?" like "Client%" and isnumeric(substring("?",7,4)) = 1 
BEGIN 
DECLARE @QueryString NVARCHAR(500) 
SET @QueryString = "Select Scan1,Scan2,scan3 from ?.dbo.Customers where Scan1 <> '''' or Scan2 <> '''' or Scan3 <> ''''" 
EXEC sp_executesql @QueryString 

IF @@RowCount > 0 
print "?" 
END 
' 

感谢

+0

是可鉴定与和其它[隐藏功能](http://stackoverflow.com/questions/121243/hidden-features-of-sql-server) – 2010-10-27 10:57:53

0

怎么是这样的:

WITH CTE AS 
(
    Select 'DB1' as DatabaseName From DB1.MyTable Where ... 
    UNION 
    Select 'DB2' as DatabaseName From DB2.MyTable Where ... 
    UNION 
    Select 'DB3' as DatabaseName From DB3.MyTable Where ... 
    <Add as many more as you need> 
) 

Select DatabaseName From CTE Where DatabaseName IS NOT NULL