Bereitstellung mithilfe von Xcopy (SQL Server Express)

Microsoft SQL Server 2005 Express Edition (SQL Server Express) unterstützt die Bereitstellung Ihrer Anwendung und der zugehörigen SQL Server Express-Datenbank mithilfe des Befehls Xcopy. Dies vereinfacht die Verteilung von Anwendungen, die die SQL Server Express-Datenbanken verwenden.

Übersicht über die Bereitstellung mithilfe von Xcopy

Bei der Bereitstellung mithilfe von Xcopy können Sie die Anwendung und die Datenbankdatei (MDF) auf einem anderen Computer (oder an einem anderen Speicherort auf demselben Computer) bereitstellen, ohne zusätzliche Konfigurationseinstellungen vornehmen zu müssen. SQL Server Express muss bereits auf dem Zielcomputer installiert sein und eine Instanz ausführen, damit eine Bereitstellung mithilfe von Xcopy möglich ist. Weitere Informationen zu Instanzen finden Sie unter Verwenden benannter Instanzen.

Wenn Sie die Anwendung mithilfe von Xcopy an Benutzer verteilen, ist es ausreichend, nur die EXE- und MDF-Dateien zu senden. Jeder Benutzer kann diese Dateien in einem Ordner speichern und dann durch Doppelklicken auf die EXE-Datei die Anwendung starten.

Merkmale der Bereitstellung mithilfe von Xcopy

SQL Server Express kann automatisch eine MDF-Datei an eine aktuell ausgeführte Instanz von SQL Server Express anfügen, sobald eine Anwendung zum ersten Mal eine Verbindung herstellt. Wenn der Benutzer die Anwendung schließt oder beendet, wird die MDF-Datei durch SQL Server Express von der Instanz getrennt. Dieses Feature sorgt dafür, dass die MDF-Datei vollständig übertragbar ist. Sie können die Datei kopieren und verschieben und gleichzeitig mehrere Kopien der Datei auf derselben Instanz ausführen.

Logische Datenbankbenennung

Wenn SQL Server Express eine Datenbank anfügt, wird automatisch ein logischer Name für die Datenbank generiert, es sei denn, in der Verbindungszeichenfolge der Anwendung ist ein logischer Name angegeben. Dieser logische Name muss eindeutig sein. SQL Server Express verwendet den Laufwerkbuchstaben, Verzeichnisnamen und den Namen der Datenbankdatei als logischen Namen. Wenn die MDF-Datei beispielsweise unter dem Pfad C:\Programme\Anwendung\Data\MainData.mdf gespeichert ist, weist SQL Server Express einen logischen Datenbanknamen zu, der dem Pfad C:\Programme\Anwendung\Data\MainData.mdf genau entspricht.

ms165716.note(de-de,SQL.90).gifHinweis:
Wenn die Länge des vollständigen Pfades 127 Zeichen übersteigt, wird der logische Datenbankname gekürzt und ein GUID vorangestellt. Auf diese Weise wird sichergestellt, dass es sich um einen eindeutigen logischen Namen handelt.

Erstellung und Benennung der Protokolldatei

Beim Bereitstellen der Anwendung sollten Sie nur die Anwendungsdateien und die MDF-Datei mithilfe des Befehls Xcopy kopieren. Sie sollten die Protokolldatei (LDF) nicht einschließen. SQL Server Express erstellt automatisch eine neue Protokolldatei beim Anfügen der Datenbank. SQL Server Express benennt die Protokolldatei mit dem Namen Datenbankname_log.ldf. Ist bereits eine Datei mit diesem Namen im gleichen Verzeichnis wie die MDF-Datei enthalten, wird die vorhandene Datei verwendet.

Einschränkungen bei der Bereitstellung mithilfe von Xcopy

Die Bereitstellung der Anwendung mithilfe von Xcopy kann dazu führen, dass manche Features von SQL Server Express nicht wie erwartet ausgeführt werden. In der folgenden Auflistung werden mögliche Einschränkungen beschrieben:

  • Transact-SQL-Code, der logische Datenbanknamen enthält, ist nicht funktionsfähig.
    Da der logische Datenbankname vom Dateispeicherort abhängt und sich bei jeder Ausführung des Befehls Xcopy ändert, schlägt jeder Code fehl, der einen logischen Datenbanknamen angibt.
  • Replikationsszenarien werden ebenfalls nicht unterstützt.
    Für die Replikation ist ein permanenter, logischer Datenbankname erforderlich. Wenn die Anwendung die Replikation verwendet, sollten Sie die Bereitstellung nicht mithilfe von Xcopy durchführen.

Bereitstellung für Administratoren auf einer Instanz von SQL Server Express mithilfe von Xcopy

Damit die Anwendung mit dem Xcopy-Bereitstellungsfeature von SQL Server Express funktionsfähig ist, müssen Sie sicherstellen, dass die Verbindungszeichenfolge, die Sie in der Anwendung verwenden, die geeigneten Parameter enthält:

  • Verwenden Sie den data source-Parameter, aber ändern Sie den Computernamen entweder in einen Punkt (.) oder in (local). Sie müssen außerdem den Namen der Instanz angeben, es sei denn, Sie sind sich sicher, dass SQL Server Express immer auf einer unbenannten Instanz installiert wird. Weitere Informationen zu benannten und unbenannten Instanzen finden Sie unter Verwenden benannter Instanzen.
  • Verwenden Sie den initial catalog- oder den database-Parameter, legen Sie aber keinen Wert für den Parameter fest.
  • Fügen Sie den AttachDBFileName-Parameter hinzu, und legen Sie ihn auf den Namen und Pfad der MDF-Datei fest. Attachdbfilename ist eine Option der SqlClient-Verbindungszeichenfolge, die das Anfügen von Datenbanken zur Laufzeit ermöglicht und den Datenbanknamen automatisch generiert. Mit dem DataDirectory-Schlüsselwort können Sie den relativen Pfad zu einer Datenbankdatei angeben. Darüber hinaus verbessert Attachdbfilename die Datenbankübertragbarkeit. Weitere Informationen zu Attachdbfilename finden Sie der Dokumentation zu Visual Studio 2005.

Die folgende Verbindungszeichenfolge fügt die Datenbankdatei MyDb.mdf (die im selben Ordner wie die ausführbare Datei der Anwendung gespeichert ist) an die auf dem lokalen Computer ausgeführte Instanz von SQL Server Express an.

@"Data Source='.\SQLExpress'; Initial Catalog=; Integrated 
Security=true; AttachDBFileName='" |DataDirectory| + 
@"\MyDb.mdf'"

Bereitstellung für Nichtadministratoren auf einer Instanz von SQL Server Express mithilfe von Xcopy

Zusätzlich zu den Parametern, die in der Verbindungszeichenfolge für die Bereitstellung mithilfe von Xcopy auf einer Instanz für Administratoren angegeben werden, müssen Sie den user instance-Parameter angeben, um eine Anwendung für Benutzer bereitzustellen, die keine Administratorprivilegien auf der Instanz von SQL Server Express besitzen. Weitere Informationen zu Benutzerinstanzen finden Sie unter Benutzerinstanzen für Nichtadministratoren.

Siehe auch

Andere Ressourcen

Verteilen von SQL Server Express

Hilfe und Informationen

Informationsquellen für SQL Server 2005