Frage: Wenn ich eine Tabelle ( T_TableName
) mit SQL Server Management-Studio erstelle, erstellt sie immer die Tabelle als
statt
%Vor%Was ist los?
Wenn Sie kein explizit zu erstellendes Schema für Ihren Tabellennamen angeben, wird es im aktuellen Standardschema des Benutzers erstellt.
Ich wette, der Benutzer, den Sie verwenden, hat sein eigenes persönliches Schema als sein Standardschema festgelegt - deshalb werden Ihre Tabellen in seinem eigenen persönlichen Schema erstellt.
Sie können überprüfen, welche Datenbankbenutzer Sie haben und was ihr Standardschema ist, indem Sie sys.database_principals
(SQL Server 2005 und höher) überprüfen:
Um das zu lösen:
Geben Sie das Schema an, das Sie explizit verwenden möchten (best practice auf jeden Fall!)
%Vor% Ändern Sie das Standardschema des Benutzers in dbo
Aber als allgemeine Faustregel empfehle ich, immer "dbo" zu verwenden. Präfix explizit, wenn Sie alle Ihre Datenbankobjekte im DBO-Schema haben wollen. Hilft auch bei der Leistung (auch nur geringfügig), da SQL Server nicht in verschiedenen Schemas suchen muss, wenn Sie explizit angeben, wo Ihre Db-Objekte leben.
Sie müssen entweder Ihre Tabelle als "dbo.Whatever" erstellen ODER Sie müssen Ihr Standardschema ändern (oder lassen Sie es von Ihrer SA für sie ausführen), indem Sie einen Befehl wie folgt ausgeben:
%Vor% Sind Sie als db_owner
für die Datenbank zugewiesen, in der Sie die Tabelle erstellt haben? Wenn nicht, könnte dies das Problem sein. Versuchen Sie, Ihre Benutzerzuordnungsberechtigungen der Datenbank als solche hinzuzufügen.
Tags und Links sql sql-server ssms