SQL Server erstellt falsche Tabellennamen, warum?

8

Frage: Wenn ich eine Tabelle ( T_TableName ) mit SQL Server Management-Studio erstelle, erstellt sie immer die Tabelle als

%Vor%

statt

%Vor%

Was ist los?

    
Stefan Steiger 19.02.2010, 09:20
quelle

4 Antworten

9

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:

%Vor%

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

    %Vor%

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.

    
marc_s 20.02.2010, 11:46
quelle
4

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%     
Dave Markle 19.02.2010 09:35
quelle
3

Rufen Sie in SSMS dbo.T_TableName auf. Wenn Sie die richtigen Berechtigungen haben, wird es funktionieren.

    
Jon 19.02.2010 09:24
quelle
1

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.

%Vor%     
Codesleuth 19.02.2010 09:29
quelle

Tags und Links