Bereitstellung mithilfe von Xcopy (SQL Server Express)

Xcopy ist eine vereinfachte Möglichkeit, die Anwendungen und SQL Server Express-Datenbanken bereitzustellen. Die xcopy-Bereitstellung ermöglicht Ihnen, eine neue Anwendung (.exe) und die Datenbankdatei (.mdf) auf einen anderen Computer oder zu einem anderen Speicherort auf dem gleichen Computer zu kopieren. Es ist keine zusätzliche Konfiguration erforderlich.

Um die Anwendung an Benutzer zu verteilen, senden Sie nur die EXE- und die MDF-Dateien. Jeder Benutzer kann die Dateien lokal speichern und nur auf die EXE doppelklicken, um die Anwendung zu starten. Wenn die Anwendung die Replikation verwendet, sollten Sie die Bereitstellung nicht mithilfe von Xcopy durchführen.

Um die Xcopy-Bereitstellung zu verwenden, muss SQL Server Express auf dem Zielcomputer installiert sein und eine Instanz haben, die ausgeführt wird. Weitere Informationen finden Sie unter Benutzerinstanzen für Nichtadministratoren.

Wie verwende ich die Xcopy-Bereitstellung?

Wenn eine Anwendung zum ersten Mal eine Verbindung von einer ausgeführten Instanz von SQL Server Express herstellt, fügt SQL Server Express automatisch eine MDF-Datei an. Wenn der Benutzer die Anwendung schließt oder beendet, wird die MDF-Datei durch SQL Server Express von der Instanz getrennt. Die Funktion Xcopy bewirkt, dass die MDF-Datei vollständig portabel ist. Sie können kopieren, die Datei verschieben und zur gleichen Zeit mehrere Kopien der Datei auf der gleichen 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.

HinweisHinweis

Wenn die Länge des vollständigen Pfades 127 Zeichen überschreitet, wird der logische Datenbankname gekürzt und ein GUID vorangestellt. Dies garantiert einen eindeutigen logischen Namen.

Erstellung und Benennung der Protokolldatei

Beim Bereitstellen der Anwendung sollten Sie nur die Anwendungsdateien und die MDF-Datei mithilfe des Befehls Xcopy einschließen. Sie sollten nicht die Protokolldatei (.ldf) einschließen. SQL Server Express erstellt automatisch eine neue Protokolldatei, wenn Datenbank angefügt wird. SQL Server Express benennt die Protokolldatei mit database_name_log.ldf. Wenn eine Datei mit dem gleichen Namen bereits im gleichen Verzeichnis wie die MDF-Datei vorhanden ist, wird die vorhandene Datei verwendet.

Einschränkungen bei der Xcopy-Bereitstellung

Die Bereitstellung der Anwendung mithilfe von Xcopy kann dazu führen, dass manche Funktionen 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.

  • 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 einer Datenbankdatei angeben. Darüber hinaus verbessert Attachdbfilename die Datenbankübertragbarkeit. Weitere Informationen zu Attachdbfilename finden Sie in der Visual Studio 2005-Dokumentation.

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

Um eine Anwendung für Benutzer bereitzustellen, die keine Administratorrechte auf der Instanz von SQL Server Express haben, müssen Sie Folgendes angeben:

  • Die Parameter in der Verbindungszeichenfolge für die Xcopy-Bereitstellung.

  • Die user instance-Parameter.

Weitere Informationen finden Sie unter Benutzerinstanzen für Nichtadministratoren.

Siehe auch

Andere Ressourcen