相关疑难解决方法(0)

如何在SQL Server 2005中列出特定数据库的所有对象

我想在SQL Server 2005中列出特定数据库的所有对象.我创建了一个查询,如下所示:

select name, type_desc from sys.objects 
WHERE type in ( 'C', 'D', 'F', 'L', 'P', 'PK', 'RF', 'TR', 'UQ', 'V', 'X' ) 
union
select name, type_desc from sys.indexes
order by name
Run Code Online (Sandbox Code Playgroud)

但是,此查询列出了所有数据库的所有对象,而不是特定数据库.

我的问题是:有没有办法查询特定数据库的所有对象?如果是的话,请你告诉我该怎么做?

t-sql metadata sql-server-2005

9
推荐指数
3
解决办法
4万
查看次数

sp_MSforeachdb:仅包含具有结果的数据库的结果

sp_MSforeachdb用一个简单的命令运行下面的存储过程.我的问题是如何限制结果只显示至少有1条记录满足命令的数据库:

结果样本

这是我的存储过程:

EXECUTE master.sys.sp_MSforeachdb 'USE [?]; 

IF (EXISTS (SELECT * 
                 FROM INFORMATION_SCHEMA.TABLES 
                 WHERE TABLE_NAME = ''Tabs''))
BEGIN

SELECT ''?'' as dbname,T.TabName, T.TabPath
FROM Tabs T
WHERE T.TabID IN (

SELECT Distinct TM.TabID
FROM TabModules TM
WHERE mID IN (
  ...
  )

)
ORDER BY T.TabName
END
'
Run Code Online (Sandbox Code Playgroud)

任何想法我如何修改sp,以便它不显示具有空结果的数据库(见图)?

sql stored-procedures sql-server-2008

5
推荐指数
1
解决办法
4万
查看次数