Tabelle wird im Dbo-Schema nicht erstellt


15

Beim Erstellen von Tabellen in SSMS ist mir aufgefallen, dass Sie die folgende Anweisung ausführen:

CREATE TABLE [tableName];

Die Tabelle wird nach Ihrem eigenen Schema erstellt (und nicht nach DBO). Um es unter dem Dbo-Schema zu erstellen, müssen Sie dies explizit so sagen:

CREATE TABLE [dbo].[tableName];

Kennt jemand einen Weg (zB serverweite Einstellung), damit beim Erstellen einer Tabelle der [dbo] -Teil nicht angegeben werden muss?


1
Welche Version von SQL Server?

4
Und warum haben Sie ein Problem mit der expliziten Angabe?
HLGEM

Antworten:


8

Das Schema, das verwendet wird, wenn das Schema weggelassen wird, ist das Standardschema des Datenbankbenutzers. Wenn dboSie möchten, dass das Schema die Tabelle ohne Angabe erstellt, müssen Sie daher das Standardschema des Datenbankbenutzers auf festlegen dbo.

Serverweite Einstellung? Ich glaube nicht. Sie können jedoch eine Abfrage schreiben, um alle Datenbankbenutzer in einer bestimmten Datenbank in ihr Standardschema zu konvertieren, das in geändert wurde, dbowenn Sie dies wünschen.


@KAJ: SQL2008R2
Chinesinho

1
Sie können das Standardschema jedoch nicht auf dbo für Windows-Gruppen festlegen ...
Chinesinho

5
@Chinesinho Sie können das Standardschema für keinen Serverprinzipal festlegen. Sie verwechseln Serveranmeldungen und Datenbankbenutzer. Datenbankbenutzer enthalten Standardschemata.
Thomas Stringer

Das Festlegen des Standardschemas für Benutzer, die Windows-Gruppenanmeldungen zugeordnet sind, wird vor SQL Server 2012 nicht unterstützt.
db2 11.10.13

7

Vielleicht kann das helfen

USE [YourDBName]
GO
ALTER USER [YourUserName] WITH DEFAULT_SCHEMA=[dbo]
GO

3
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.