Erstellen und Ändern von Datenbank- und Serverobjekten

Datenbankobjekte definieren die Struktur des Inhalts der Datenbank. Diese Objekte sind in einem Datenbankprojekt enthalten, das auch Datengenerierungspläne und Skripts einschließen kann. Serverobjekte definieren Objekte, die auf dem Datenbankserver, aber nicht in einer Datenbank vorhanden sind, z. B. Anmeldeinformationen, Zertifikate oder benutzerdefinierte Fehlermeldungen. Serverobjekte sind in Serverprojekten enthalten.

Im Projektmappen-Explorer sind Definitionen für Datenbank- und Serverobjekte in Dateien enthalten und innerhalb des Datenbank- oder Serverprojekts nach Typ gruppiert. Wenn Sie mit Datenbank- und Serverobjekten arbeiten, bietet die Schemaansicht, in der Objekte nach Typ gruppiert sind, möglicherweise intuitiver zu erfassende Optionen. Eine Datei im Datenbankprojekt wird für eine Datenbankobjektdefinition analysiert, wenn die Datei mit dem Build Type Build gekennzeichnet ist. Dateien im Datenbankprojekt, die einen anderen Build Type aufweisen, werden nicht behandelt, als enthielten sie Datenbankobjekte, und werden nicht in der Schemaansicht angezeigt.

Allgemeine Aufgaben

In der folgenden Tabelle finden Sie die Beschreibungen häufiger Aufgaben, die dieses Szenario unterstützen, und Links zu weiteren Informationen zur erfolgreichen Ausführung dieser Aufgaben.

Aufgabe

Unterstützender Inhalt

Praktische Erfahrungen: Sie können die einführenden exemplarischen Vorgehensweisen befolgen, um sich mit dem Erstellen eines Datenbankprojekts und der zugehörigen Objekte sowie mit dem Ändern dieser Objekte vertraut zu machen.

Weitere Informationen zu Datenbank- und Serverobjekten: Weiter unten in diesem Thema erfahren Sie mehr zu Datenbank- und Serverobjekten, u. a. zur Namensauflösung, zu Verweisen auf Datenbanknamen in Objektdefinitionen und zur Validierung von Objekten.

  • Objektdefinitionen

  • Objekte im Projektmappen-Explorer und in der Schemaansicht

  • Auflösung des Objektnamens

  • Verweisen auf den Datenbanknamen in Objektdefinitionen

  • SET-Optionen auf Objektebene

  • Objektvalidierung

Grundlegendes zu Abhängigkeiten zwischen Datenbankobjekten: Sie können die Objekte anzeigen, von denen ein Datenbankobjekt abhängt, sowie die Objekte, die von diesem Objekt abhängen.

Hinzufügen von Objekten zum Datenbank- oder Serverprojekt: Sie können dem Datenbank- oder Serverprojekt mit einer von mehreren Methoden Objekte hinzufügen:

  • Sie können Objekte aus einem Skript oder einer aktualisierten Datenbank oder von einem Server importieren.

  • Sie können Objekte im Standardschema oder in einem bestimmten Schema erstellen.

  • Sie können dem Projekt Dateien mit Objektdefinitionen hinzufügen.

  • Sie können die Optionen auf Objektebene (als SET-Optionen bezeichnet) anpassen, nachdem Sie die Objekte dem Projekt hinzugefügt haben.

  • Sie können Berechtigungen für die Datenbankobjekte angeben.

Hinzufügen spezialisierter Objekte zum Datenbank oder Serverprojekt: Wenn Sie dem Projekt einige Objekttypen hinzufügen möchten, müssen Sie eine leicht abweichende Prozedur für den jeweiligen Objekttyp befolgen.

  • Sie können Tabellen- und Indexoptionen definieren.

  • Sie können einer Rolle einen Benutzer hinzufügen.

  • Sie können Volltextkataloge definieren.

  • Sie können Dateigruppen und Dateien definieren.

Ändern von Datenbank- oder Serverobjekten: Sie können die Definitionen der Objekte im Server oder Datenbankprojekt ändern. Sie können für diese Objekte auch die SET-Optionen auf Objektebene ändern.

Entfernen von Objekten aus dem Datenbank- oder Serverprojekt: Sie können Objekte aus dem Datenbank- oder Serverprojekt löschen, um sie permanent zu entfernen. Objekte, die sich noch in der Entwicklung befinden, können Sie auch vorübergehend ausschließen.

Anpassen der Vorlagen für- Datenbank und Serverobjekte: Sie können die Vorlagen, die Sie beim Erstellen von Datenbank- und Serverobjekten verwenden, anzeigen und ändern.

Problembehebung: Sie können mehr zur Behebung häufiger Probleme mit Datenbank- und Serverprojekten erfahren.

Objektdefinitionen

Datenbank.- und Serverobjekte werden in einer Auflistung von SQL-Dateien definiert, die im Projektordner gespeichert sind. Die meisten Objekte werden in separaten Dateien definiert. Zu den Ausnahmen zählen Spalten in einer Tabelle und Parameter für eine gespeicherte Prozedur oder Funktion. Spalten werden in der Datei mit der Tabellendefinition angegeben, und Parameter werden in der Datei mit der gespeicherten Prozedur oder Funktion angegeben.

Die Buildvorgang-Eigenschaft einer SQL-Datei gibt an, ob die Datei daraufhin analysiert wird, ob sie die Definition eines Datenbankobjekts enthält. Dateien mit Definitionen für Datenbankobjekte werden standardmäßig auf Build festgelegt. Andere SQL-Skripts und sonstige Dateien werden auf Nicht im Build festgelegt. Die Buildvorgang-Eigenschaft bestimmt auch, ob das Buildskript die Datei enthält.

Der Name der einzelnen Objekte bestimmt den jeweiligen Dateinamen, und der Objekttyp bestimmt die Standard-Dateinamenerweiterung. Funktionen befinden sich z. B. in Dateien, die mit Objektname.function.sql benannt sind, und gespeicherte Prozeduren in Dateien, die mit Objektname.proc.sql benannt sind.

Objekte im Projektmappen-Explorer und in der Schemaansicht

Im Projektmappen-Explorer arbeiten Sie mit den im Projekt enthaltenen Dateien, die die Definitionen für die Objekte enthalten. Die Umgestaltung mit Umbenennen können Sie im Projektmappen-Explorer nicht verwenden. Sie verwenden den Projektmappen-Explorer, wenn Sie mit Dateien arbeiten möchten, z. B., wenn Sie das Projekt in die Versionskontrolle einchecken möchten.

In der Schemaansicht arbeiten Sie mit den Datenbankobjekten. Wenn Sie mit den Objekten und nicht den Dateien mit deren Definitionen arbeiten, verwenden Sie Schemaansicht. Beispielsweise können Sie in der Schemaansicht Datenbankobjekte erstellen.

Auflösung des Objektnamens

Objektnamen sollten im Allgemeinen mit den in SQL Server verwendeten Regeln aufgelöst werden. Einige Systemobjekte müssen möglicherweise voll qualifiziert werden, um ordnungsgemäß aufgelöst werden zu können. Wenn im Zusammenhang mit nicht voll qualifizierten Objektnamen Fehler angezeigt werden oder Sie unerwartetes Verhalten feststellen, sollten Sie die Objekte voll qualifizieren, um das Problem zu beheben.

Verweisen auf den Datenbanknamen in Objektdefinitionen

Sie können das $(databasename)-Token in einem Objektdefinitionsskript in einem Datenbankprojekt verwenden, jedoch sind die folgenden Einschränkungen gültig:

  • Sie müssen das Token wie im folgenden Beispiel in eckige Klammern einschließen:

    [$(databasename)]

  • Wie im folgenden Beispiel gezeigt, können Sie mit dem Token keinen aus drei Teilen bestehenden Namen angeben:

    [$(databasename)].[dbo].[Table1]

Im folgenden Beispiel wird gezeigt, wie Sie das $(database)-Namenstoken in einer gespeicherten Prozedur verwenden:

CREATE PROCEDURE [dbo].[MyProcedure]
@param1 INT = 0,
@param2 INT
AS
ALTER DATABASE [$(databasename)]
MODIFY FILEGROUP [FileGroup1] DEFAULT
RETURN 0

SET-Optionen auf Objektebene

Neben den SET-Optionen, die Sie für das Datenbankprojekt einstellen können, können Sie auch zwei Werte für einzelne Datenbankobjekte angeben: ANSI-NULL-Werte und Bezeichner in Anführungszeichen. Standardmäßig stimmen die SET-Optionen für jedes Objekt mit den SET-Optionen des Datenbankprojekts überein. Diese beiden Optionen können Sie auf den Projektstandard, On oder Off festlegen. Bei der Erstellung des Datenbankprojekts werden nur die SET-Optionen auf Objektebene in das Buildskript geschrieben, für die ein anderer Wert als der Projektstandard festgelegt wurde.

Tipp

Wenn Sie den Befehl Skript importieren oder Datenbankschema importieren verwenden, werden keine SET-Optionswerte für einzelne Datenbankobjekte importiert. Sie müssen sie im Fenster Eigenschaften festlegen. Weitere Informationen finden Sie unter Gewusst wie: Angeben von SET-Optionen auf Objektebene.

Objektvalidierung

Die Validierung wird ausgeführt, wenn Sie Änderungen an einem von Ihnen erstellten oder geänderten Datenbankobjekt speichern. Alle Fehler in der Objektdefinition werden im Fenster Fehlerliste angezeigt. Wenn Sie auf die Fehlermeldung doppelklicken, wird die Objektdefinition geöffnet, damit Sie den Fehler korrigieren können. Bei Datenbankobjekten, die Fehler enthalten, wird in der Schemaansicht in den entsprechenden Symbolen ein rotes Ausrufezeichen angezeigt.

Tipp

Wenn ein Datenbankobjekt in der verwendeten Version nicht unterstützt wird, wird als Symbol für dieses Objekt ein umgekehrtes gelbes Dreieck verwendet.

Weitere Informationen über das Beheben von Problemen bei Datenbankobjekten finden Sie unter Problembehandlung bei Datenbankprojekten, Erstellung und Bereitstellung.

Ähnliche Szenarien

Siehe auch

Konzepte

Erstellen und Bereitstellen von Datenbanken für eine Staging- oder Produktionsumgebung

Erstellen und Bereitstellen von Datenbanken für eine isolierte Entwicklungsumgebung

Umbenennen aller Verweise auf ein Datenbankobjekt

Schreiben und Ändern von Datenbankcode