使用sp_MSforeachdb排除空白记录以及如何在ASC中排序DBName

时间:2016-03-10 18:49:18

标签: sql-server tsql

我在SQL Server 2008 R2中工作。

我需要找到我在这个服务器中的数据库中定义的SQL Server(DBSQLSERVER)的位置。我能够在另一个站点中找到一个旧帖子来执行此操作但是有几个需要补救的问题。

SET NOCOUNT ON;
DECLARE @text NVARCHAR(128)
DECLARE @sql NVARCHAR(MAX)
SET @text = @@SERVERNAME;
SET @sql = 
    'USE [?]
    SELECT ''?'' [DBName], @@SERVERNAME AS [Server], o.name AS [ObjName], o.type_desc [TypeDesc]
    FROM sys.sql_modules m 
    INNER JOIN sys.objects o 
    ON m.object_id = o.object_id
    WHERE m.definition Like ' + CHAR(39) + '%' + @text + '%' + CHAR(39) + '
    ORDER BY 1, 3 asc'
EXEC sp_MSforeachdb @sql;

我有两个问题:

  1. 我收到了一些BLANK RECORDS,并且不明白我在哪里采摘它。这些来自何处以及如何将它们从我的记录集中排除将不胜感激。

  2. 在这个SQL语句中,我试图创建一个ORDER BY语句,但它不起作用。我有一个无法定义的高级订单。我怎样才能按照DBNAME的顺序将它们放入ObjName?

  3. 请参阅图片了解订单问题。

    对这两个问题的任何帮助/指导都将不胜感激。

    sp_MSforeachdb_order_problem

    感谢。

0 个答案:

没有答案