it-swarm.com.de

Listen Sie den Schemanamen und die Eigentümer in SQL Server 2012 auf

Ich wollte alle Tabellennamen, Spaltennamen, Schemanamen und Eigentümer in allen Datenbanken auflisten und schrieb den folgenden Code. Ich bin nicht sicher, wo ich die Details des Schemabesitzers erhalten soll, die zu meiner Abfrage hinzugefügt werden sollen. Bitte helfen Sie.

select  c.name as colomn_name , t.name as table_name , s.name as schema_name 
 from sys.columns c 
   inner join  sys.tables t     on c.object_id=t.object_id
   INNER JOIN sys.schemas AS s  ON t.[schema_id] = s.[schema_id]
15
user3844877

Die Kolumne principal_id im sys.schemas enthält die ID des Schemabesitzers. Um den Namen zu erhalten, können Sie einfach Folgendes verwenden:

USER_NAME(s.principal_id) AS Schema_Owner

Wenn Sie weitere Informationen benötigen, können Sie sich auch bei sys.sysusers anmelden:

SELECT  s.Name, u.*
FROM    sys.schemas s
        INNER JOIN sys.sysusers u
            ON u.uid = s.principal_id
31
GarethD

Hier ist eine portablere Lösung, die unter SQL Server funktioniert:

SELECT schema_name, schema_owner
FROM information_schema.schemata
10
Gili