Erstellen und Bearbeiten von Datenbankskripts
Datenbankskripts sind zusätzliche Dateien mit Transact-SQL-Anweisungen oder Dienstprogramme wie SQLCMD, die nicht Teil der Datenbankschemadefinition sind. Sie können Datenbankskripts im Rahmen der Bereitstellung (Skripts vor oder Skripts nach der Bereitstellung) verwenden oder allgemeine Verwaltungsskripts im Datenbankprojekt speichern.
Wenn Sie ein Datenbankobjekt umbenennen, können Sie alle Verweise auf dieses Objekt in den Skripts mithilfe der Datenbankumgestaltung automatisch aktualisieren.
Bereitstellungsskripts
Wenn Sie ein Datenbankprojekt erstellen, werden das Skript vor der Bereitstellung, die Datenbankobjektdefinitionen und das Skript nach der Bereitstellung in eine Datenbank-Schemadatei (.dbschema) kompiliert. Sie können nur ein Skript vor der Bereitstellung und ein Skript nach der Bereitstellung angeben. Mit SQLCMD können Sie jedoch weitere Skripts in diese Skripts aufnehmen. eitere Informationen finden Sie unter Einschließen mehrerer Skripts im Schritt vor oder nach der Bereitstellung. Wenn Sie das Datenbankprojekt erstellen, werden alle eingeschlossenen Skripts mit dem Buildskript zusammengeführt.
Standardmäßig enthält das Datenbankprojekt ein leeres Skript vor der Bereitstellung und ein leeres Skript nach der Bereitstellung. Diese Skripts werden script.predeployment.sql und script.postdeployment.sql genannt.
Sie legen ein Skript vor der Bereitstellung fest, indem Sie die Build Action-Eigenschaft der Skriptdatei auf PreDeploy festlegen. Analog wird ein Skript nach der Bereitstellung festgelegt, indem die Build Action-Eigenschaft der Skriptdatei auf PostDeploy festgelegt wird. Wenn Sie ein Skript als Skript vor der Bereitstellung oder als Skript nach der Bereitstellung festlegen und ein anderes Skript danach auf dieselbe Art festlegen, wird die Buildaktion für das erste Skript im Build automatisch auf Nicht festgelegt. Dieses Verhalten ist vorgesehen, weil für jedes Datenbankprojekt nur ein einziges Skript vor der Bereitstellung und ein einziges Skript nach der Bereitstellung vorhanden sein darf.
Wichtig
Die Bereitstellung kann fehlerhaft sein, wenn Sie die Namen oder die Eigenschaften von Objekten ändern, auf die die Bereitstellungsskripts verweisen, ohne die Verweise in den Skripts zu ändern. Sie können z. B. Daten in eine Tabelle im Skript nach der Bereitstellung einfügen. Wenn Sie die Tabelle umbenennen, ohne das Skript zu aktualisieren, geben die INSERT-Anweisungen einen Fehler zurück. Wenn Sie die Tabelle durch Umgestaltung mit Umbenennen umbenennen, wird das Bereitstellungsskript aktualisiert.
Einschließen mehrerer Skripts im Schritt vor oder nach der Bereitstellung
Wenn Sie mehrere Skripts im Schritt vor oder nach der Bereitstellung verwenden möchten, müssen Sie ein Skript auf der obersten Ebene festlegen, das weitere Skripts vor oder nach der Bereitstellung enthält. Verwenden Sie dazu die folgende Anweisung:
SQLCMD :r .\Dateiname.sql
Zusätzliche Skripts
Zusätzlich zu Bereitstellungsskripts können Sie dem Datenbankprojekt weitere Skripts für allgemeine Zwecke hinzufügen. Sie können diese Skripts ordnen, indem Sie im Skriptordner des Datenbankprojekts Unterordner anlegen. Wenn Sie eines dieser zusätzlichen Skripts im Transact-SQL-Editor öffnen, können Sie eine Verbindung mit dem Datenbankserver herstellen und das Skript vollständig oder teilweise ausführen. Wenn Sie Standardüberwachungsskripts ausführen, können Sie auf diese Weise jedes Skript mit der zugehörigen Datenbank speichern und das Skript und die Datenbank unter das gleiche Versionskontrollsystem stellen wie das Datenbankschema. Die Build Action-Eigenschaft dieser Skripts ist auf Nicht im Build festgelegt.
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 |
---|---|
Angeben der Skripts vor oder nach der Bereitstellung: Sie können Skripts, die vor oder nach der Bereitstellung der Datenbank ausgeführt werden, Transact-SQL-Anweisungen hinzufügen. Wenn Sie Objekte und Einstellungen aus einer Datenbank importieren, wurden die Bereitstellungsskripts möglicherweise mit Anweisungen aktualisiert, die nicht als Datenbankobjekte dargestellt werden, z. B. Berechtigungen, Rollendefinitionen oder Signaturen. |
|
Angeben von Verwaltungs- oder Dienstprogrammskripts: Sie können dem Datenbankprojekt Verwaltungs- und Dienstprogrammskripts hinzufügen. Außerdem können Sie Ihre Skripts aktualisieren, wenn Sie Objekte im Datenbankprojekt umgestalten. |
|
Einchecken von Änderungen: Sie können die Skripts zur Versionskontrolle einchecken, um sie für das Team freizugeben. Wenn die Skripts unter Versionskontrolle gestellt werden, können Sie die Bereitstellungs- und Wartungsskripts zu einer früheren Version der Datenbank speichern und Abrufen, wenn Sie sich mit dieser Version befassen müssen. |
|
Problembehebung: Hier erfahren Sie mehr zur Behebung allgemeiner Probleme mit Datenbank- und Serverprojekten. |
Ähnliche Szenarien
Erstellen und Ändern von Datenbank- und Serverobjekten
Sie aktualisieren die Datenbank oder den Server, wenn Sie die Objektdefinitionen Ihres Projekts ändern und diese Änderungen in einer Zieldatenbank oder auf einem Zielserver bereitstellen.Umgestalten von Datenbankcode und Daten
Miithilfe der Datenbankumgestaltung können Sie einige wiederkehrende und fehleranfällige Aufgaben ausschließen, z. B. das Umbenennen aller Verweise auf ein Objekt, vollqualifizierende Namen, das Erweitern von Platzhalterzeichen oder das Verschieben eines Objekts in ein neues Schema.Erstellen und Bereitstellen von Datenbanken für eine isolierte Entwicklungsumgebung
Nachdem Sie Objekte im Projekt geändert haben, erstellen Sie die Änderungen in der isolierten Entwicklungsumgebung und stellen Sie bereit.Analysieren von Datenbankcode zum Verbessern der Codequalität
Sie können den Datenbankcode analysieren, um allgemeine Entwurfs-, Benennungs- und Leistungsprobleme zu finden und zu beheben.
Siehe auch
Konzepte
Schreiben und Ändern von Datenbankcode
Umbenennen aller Verweise auf ein Datenbankobjekt
Erstellen und Bereitstellen von Datenbanken für eine isolierte Entwicklungsumgebung
Erstellen und Bereitstellen von Datenbanken für eine Staging- oder Produktionsumgebung