Home Forums SQL Server 2005 Administering how to check the Schema Objects Details in Each Database using SP RE: how to check the Schema Objects Details in Each Database using SP

  • Hi,

    You may use these two ways:

    1) Build dynamic query:

    SET NOCOUNT ON

    DECLARE @db NVARCHAR (50), @sqlStr NVARCHAR(4000)

    DECLARE @tbl_dbs TABLE (dbName NVARCHAR(50))

    INSERT @tbl_dbs SELECT Name from master.sys.databases

    WHILE EXISTS

    (SELECT dbName FROM @tbl_dbs)

    BEGIN

    SELECT TOP 1 @db = dbName

    , @sqlStr = 'INSERT ABC..YourTable (ObjectName, name,type,type_desc ) SELECT schema_name(schema_id)as ObjectName, name,type,type_desc

    from ' + @db + '.sys.objects

    where schema_name(schema_id) <> ''dbo''

    and type in(''U'',''P'',''V'', ''FN'',''TF'',''IF'',''PK'',''UQ'')'

    FROM @tbl_dbs

    EXEC master.dbo.sp_executesql @sqlStr

    DELETE FROM @tbl_dbs

    WHERE dbName = @db

    END

    2) Use undocumented stored procedure (which is not actually recommended):

    EXEC sp_MSforeachDB 'INSERT ABC..YourTable (ObjectName, name,type,type_desc )

    SELECT schema_name(schema_id)as ObjectName, name,type,type_desc

    from ?.sys.objects

    where schema_name(schema_id) <> ''dbo''

    and type in(''U'',''P'',''V'', ''FN'',''TF'',''IF'',''PK'',''UQ'')'