Sdílet prostřednictvím


Übersicht über Datenbankskripts

Aktualisiert: November 2007

Datenbankskripts sind zusätzliche Dateien mit Transact-SQL (T-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) oder als allgemeine Verwaltungsskripts verwenden, die im Datenbankprojekt gespeichert werden.

Während der Datenbankumgestaltung für ein Schemaobjekt können Sie automatisch alle Skripts aktualisieren, die ein Datenbankobjekt enthalten, das im Rahmen des Vorgangs umbenannt wird.

Der Ordner Skripts unterstützt die folgenden Vorgänge:

  • Neues Element hinzufügen

  • Ordner hinzufügen

  • Skript hinzufügen

  • Aus Projekt ausschließen

  • Versionskontrollvorgänge (z. B. Einchecken, Auschecken)

  • Ausschneiden

  • Kopieren

  • Delete

  • Umbenennen

  • Eigenschaften

Skripts im Ordner Skripts unterstützen die folgenden Aktionen:

  • Öffnen

  • Öffnen mit

  • Aus Projekt ausschließen

  • Versionskontrollvorgänge (z. B. Einchecken, Auschecken)

  • Ausschneiden

  • Kopieren

  • Delete

  • Umbenennen

  • Eigenschaften

Bereitstellungsskripts

Wenn Sie ein Datenbankprojekt erstellen, werden das Skript vor der Bereitstellung, die Datenbankobjektdefinitionen und das Skript nach der Bereitstellung in einem Buildskript zusammengeführt. Sie können nur ein Skript vor der Bereitstellung und ein Skript nach der Bereitstellung angeben. Diese können jedoch weitere Skripts enthalten. Zusätzliche Skripts werden mit SQLCMD eingeschlossen. (Weitere Informationen erhalten Sie im entsprechenden Abschnitt in diesem Thema.) Wenn Sie das Datenbankprojekt erstellen, werden alle eingeschlossenen Skripts mit dem Buildskript zusammengeführt.

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 Buildvorgang-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 zuvor für diese Buildaktion festgelegt wurde, wird die Buildaktion für das andere Skript automatisch auf Nicht im Build 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.

Beim Importieren eines Datenbankschemas werden die meisten Schemainformationen in Datenbankobjektdefinitionen des Datenbankprojekts importiert. Einige Informationen (wie Anmeldedaten, Berechtigungen, Regeln und Vorgaben) werden stattdessen in zusätzliche Skripts vor oder Skripts nach der Bereitstellung importiert. Bei diesem Vorgang werden zusätzliche Dateien im Unterordner für vor oder im Unterordner für nach der Bereitstellung des Ordners Skripts für das Datenbankprojekt erstellt. Diese zusätzlichen Skriptdateien sind je nach Bedarf im Skript vor oder im Skript nach der Bereitstellung enthalten. Die enthaltenen Skripts weisen eine Buildvorgang-Eigenschaft auf, die auf Nicht im Build festgelegt ist, da diese nicht direkt im Skript enthalten sind. Stattdessen werden sie indirekt durch das Skript vor oder das Skript nach der Bereitstellung eingeschlossen. Nicht erkannte Skriptanweisungen werden in die Datei ScriptsIgnoredOnImport.sql im Ordner Skripts eingefügt.

Aa833429.alert_caution(de-de,VS.90).gifWichtiger Hinweis:

Wenn die Bereitstellungsskripts auf Datenbankobjekte verweisen, deren Namen oder Merkmale sich zu einem späteren Zeitpunkt ändern, müssen Sie die Bereitstellungsskripts manuell anpassen, oder die Bereitstellung führt zu einem Fehler. Wenn Sie beispielsweise über Regeln und Vorgaben verfügen, die an eine Tabelle gebunden sind, und Sie die Tabelle umbenennen, wird das Bereitstellungsskript nicht aktualisiert, und die Bindung führt zu einem Fehler, sofern das Skript nicht geändert wird. Wenn Sie die Tabelle durch Umgestaltung mit Umbenennung umbenennen, wird das Bereitstellungsskript im Rahmen der Umgestaltung aktualisiert.

Importieren von Datenbankschemas und Skripts vor der Bereitstellung

Die Datei script.predeployment.sql stellt standardmäßig das primäre Skript vor der Bereitstellung dar. Dieses Skript wird automatisch als leere Datei erstellt, wenn Sie ein Datenbankprojekt erstellen. Wenn Sie ein Datenbankschema importieren, werden im gleichen Ordner wie das Skript vor der Bereitstellung möglicherweise weitere Skripts automatisch erstellt. Wenn zusätzliche Skripts erstellt werden, werden der Datei script.predeployment.sql Anweisungen hinzugefügt, um die zusätzlichen Skripts einzuschließen. Sie können eine andere Datei als Skript vor der Bereitstellung festlegen, indem Sie die entsprechende Buildvorgang-Eigenschaft auf PreDeploy festlegen.

Aa833429.alert_note(de-de,VS.90).gifHinweis:

Sie können nur für ein Skript vor der Bereitstellung die Buildvorgang-Eigenschaft auf PreDeploy festlegen. Wenn Sie mehrere Skripts im Vorfeld der Bereitstellung verwenden möchten, müssen Sie ein Skript vor der Bereitstellung der obersten Ebene festlegen, das weitere Skripts vor der Bereitstellung enthält. Verwenden Sie dazu die folgende Anweisung: SQLCMD :r.\Dateiname.sql.

Aa833429.alert_caution(de-de,VS.90).gifWichtiger Hinweis:

Sie müssen das Skript vor der Bereitstellung manuell ändern, um Objekte zu erstellen, wenn während eines Schemaimports nicht ausreichende Informationen zum Neuerstellen der Objekte importiert werden können. Beispielsweise müssen Sie das Skript ändern, um Verschlüsselungsschlüssel und Zertifikate zu erstellen.

Die Skriptdateien in der folgenden Tabelle werden generiert, wenn Sie ein Datenbankschema importieren:

Dateiname

Berücksichtigungsreihenfolge

Hinweise

Logins.sql

Erstens

Dieses Skript enthält Definitionen für alle Microsoft SQL Server-Anmeldedaten, die in der Quelldatenbank definiert sind. Anmeldedaten werden mit CREATE LOGIN in Microsoft SQL Server 2005 und mit sp_addlogin in SQL Server 2000 geschrieben.

LinkedServers.sql

Second

Dieses Skript enthält Anweisungen, um verknüpfte Server zu erstellen. (Weitere Informationen finden Sie unter "Verknüpfen von Servern" auf der Microsoft-Website.) Wenn Sie das Datenbankschema importieren, wird dem Skript für jeden verknüpften Server in der Quelldatenbank eine sp_addlinkedserver-Anweisung hinzugefügt.

CustomErrors.sql

Drittens

Dieses Skript enthält benutzerdefinierte Fehlermeldungen. Wenn Sie das Datenbankschema importieren, wird dem Skript für jede benutzerdefinierte Fehlermeldung in der Quelldatenbank eine sp_addmessage-Anweisung hinzugefügt.

EncryptionKeysAndCertificates.sql

Viertens

Dieses Skript enthält Platzhalter für alle CREATE SYMMETRIC KEY-, CREATE ASYMMETRIC KEY-, CREATE MASTER KEY- und CREATE CERTIFICATE-Anweisungen in der Quelldatenbank.

Aa833429.alert_note(de-de,VS.90).gifHinweis:
Dieses Skript wird nur für SQL Server 2005 verwendet.

Importieren von Datenbankschemas und Skripts nach der Bereitstellung

Die Datei script.postdeployment.sql stellt standardmäßig das primäre Skript nach der Bereitstellung dar. Dieses Skript wird automatisch als leere Datei erstellt, wenn Sie ein Datenbankprojekt erstellen. Wenn Sie ein Datenbankschema importieren, können zusätzliche Skripts erstellt werden. Wenn zusätzliche Skripts erstellt werden, werden der Datei script.postdeployment.sql Anweisungen hinzugefügt, um die zusätzlichen Skripts einzuschließen. Sie können eine andere Datei als Skript nach der Bereitstellung festlegen, indem Sie die entsprechende Buildvorgang-Eigenschaft auf PostDeploy festlegen.

Aa833429.alert_note(de-de,VS.90).gifHinweis:

Sie können nur ein Skript nach der Bereitstellung mit einer Buildvorgang-Eigenschaft auf PostDeploy festlegen. Wenn Sie mehrere Skripts im Anschluss an die Bereitstellung verwenden möchten, müssen Sie ein Skript nach der Bereitstellung der obersten Ebene erstellen, das weitere Skripts für nach der Bereitstellung enthält. Verwenden Sie dazu die folgende Anweisung: SQLCMD :r.\Dateiname.sql.

Aa833429.alert_caution(de-de,VS.90).gifWichtiger Hinweis:

Möglicherweise müssen Sie die Skripts für nach der Bereitstellung manuell ändern, um Objekte zu erstellen oder zu aktualisieren, wenn während eines Schemaimports nicht ausreichende Informationen zum Neuerstellen oder Ändern der Objekte importiert werden können. Ein Beispiel hierfür ist das Zuordnen von Benutzern zu Rollen.

Die Skriptdateien in der folgenden Tabelle werden generiert, wenn Sie ein Datenbankschema importieren:

Dateiname

Order

Hinweise

Storage.sql

Erstens

Dieses Skript enthält Definitionen für Speicherobjekte, z. B. Dateien und Dateigruppen.

Permissions.sql

Second

Dieses Skript enthält ggf. die Berechtigungen GRANT, REVOKE oder DENY für die Zieldatenbank. Wenn Sie ein Datenbankschema importieren, werden der Datei Permissions.sql Anweisungen für Berechtigungen in der Quelldatenbank hinzugefügt.

RoleMemberships.sql

Drittens

Dieses Skript enthält alle sp_addrolemember-Anweisungen, die erforderlich sind, um Benutzer und Rollen einander zuzuordnen.

RulesAndDefaults.sql

Viertens

Dieses Skript enthält zusätzliche Anweisungen, um Regeln und Vorgaben für die Zieldatenbank zu definieren. Wenn Sie ein Datenbankschema importieren, werden dem Skript RulesandDefaults weitere Anweisungen hinzugefügt, um Regeln und Vorgaben an Spalten oder Aliasdatentypen zu binden und Sicherheitskonten als Member einer vorhandenen SQL Server-Datenbankrolle in der Datenbank hinzuzufügen. Die Anweisungen, die dem Skript hinzugefügt werden, finden Sie in der folgenden Tabelle.

DatabaseObjectOptions.sql

Fünftens

Dieses Skript enthält Optionen, die nach der Bereitstellung auf Datenbankobjekte angewendet werden.

Signatures.sql

Sechstens

Dieses Skript enthält alle Signaturdefinitionen für die Zieldatenbank. Wenn Sie ein Datenbankschema importieren, werden dem Skript Signatures.sql weitere Anweisungen für jede Signatur in der Quelldatenbank hinzugefügt.

Hinweis   Dieses Skript wird nur für SQL Server 2005 verwendet.

Regeln, Standards und Sicherheitskonten werden wie folgt hinzugefügt:

Ziel

SQL Server 2005

SQL Server 2000

Binden einer Regel an eine Spalte oder einen Aliasdatentyp

ALTER TABLETabellennameADD CONSTRAINTEinschränkungsnameCHECK

sp_bindrule

Binden eines Standardwerts an eine Spalte oder einen Aliasdatentyp

ALTER TABLETabellennameADD CONSTRAINTEinschränkungsnameDEFAULT

sp_binddefault

Hinzufügen eines Sicherheitskontos als Member einer vorhandenen SQL Server-Datenbankrolle

sp_addrolemember

sp_addrolemember

Zusätzliche Skripts

Zusätzlich zu Bereitstellungsskripts können Sie dem Datenbankprojekt weitere Skripts für allgemeine Zwecke hinzufügen. Sie können dem Ordner Skripts im Datenbankprojekt zur besseren Übersicht über zusätzliche Skripts weitere Unterordner hinzufügen. Wenn Sie ein zusätzliches Skript im T-SQL-Editor öffnen, können Sie eine Verbindung mit dem Datenbankserver herstellen und das Skript teilweise oder vollständig ausführen. Wenn Sie über Standardüberwachungsskripts verfügen, können Sie auf diese Weise jedes Skript mit der zugehörigen Datenbank speichern und unter das gleiche Versionskontrollsystem stellen wie das Datenbankschema. Die Buildvorgang-Eigenschaft dieser Skripts ist auf Nicht im Build festgelegt.

Siehe auch

Aufgaben

Gewusst wie: Angeben von Skripts vor der Bereitstellung und Skripts nach der Bereitstellung

Gewusst wie: Hinzufügen von Verwaltungsskripts zu einem Datenbankprojekt

Konzepte

Übersicht über das Erstellen und Bereitstellen einer Datenbank

Übersicht über die Terminologie der Database Edition

Weitere Ressourcen

Verwalten von Datenbankverbindungen im Transact-SQL-Editor

Analysieren und Ausführen von Skripts im Transact-SQL-Editor