Herunterladen: DB-Dokumentierer.sql

Herunterladen von: DB-Dokumentierer.sql Quick and Dirty Datenbank Dokumentierer

Um all diesen Personen die schwierigen Bedienung einer Internet-Suchmaschine abzunehmen ist hier ein Skript, das ich in 10 Minuten gerade geschrieben habe. Es erhebt keinerlei Anspruch auf Effektivität, Fehlerfreiheit, Vollständigkeit und/oder ähnliches, sondern soll vielmehr als Denkanstoss dienen.

DECLARE @Databases TABLE (dbname sysname);
DECLARE @Database sysname;
DECLARE @DatabaseCmd sysname;
DECLARE @sql nvarchar(2000)

INSERT INTO @Databases
    (dbname)
SELECT
    D.name
FROM
    sys.databases D
WHERE
    D.database_id > 5    


SELECT
    @Database = MIN(D.dbname),
    @DatabaseCmd = @Database + '.sys.sp_ExecuteSQL'
FROM
    @Databases D;

WHILE @Database IS NOT NULL
BEGIN
    SELECT @sql = '
    SELECT
        DB_NAME() as CurrentDatabase,
        O.name AS TableName,
        C.name AS ColumnName,
        C.column_id,
        S.name,
        S.length,
        C.precision,
        C.scale,
        C.is_nullable
    FROM
        sys.objects O
        JOIN
        sys.columns C ON O.object_id = C.object_id
        JOIN
        sys.systypes S ON C.system_type_id = S.xtype
    WHERE
        O.type = ''U'' AND
        O.is_ms_shipped = 0
    ORDER BY
        O.name,
        C.column_id'

    EXEC @DatabaseCmd @sql;
    
    DELETE
        @Databases
    WHERE
        dbname = @Database;
        
    SELECT
        @Database = MIN(D.dbname),
        @DatabaseCmd = @Database + '.sys.sp_ExecuteSQL'
    FROM
        @Databases D;
END

Kommentare zur Erweiterung sind gerne willkommen. ;-)