Freigeben über


Bereitstellung mithilfe von Xcopy (SQL Server Express)

Xcopy ist eine einfache Möglichkeit, Ihre Anwendungen und die SQL Server Express-Datenbanken bereitzustellen. Die Bereitstellung mithilfe von Xcopy ermöglicht Ihnen, eine neue Anwendungsdatei (.exe) und die Datenbankdatei (.mdf) auf einen anderen Computer oder an einen anderen Speicherort auf demselben Computer zu kopieren. Eine zusätzliche Konfiguration ist nicht erforderlich.

Um die Anwendung mithilfe von Xcopy an Benutzer zu verteilen, reicht es aus, nur die EXE- und die MDF-Dateien zu senden. Jeder Benutzer kann diese Dateien lokal speichern und dann durch Doppelklicken auf die EXE-Datei die Anwendung starten. Wenn die Anwendung die Replikation verwendet, sollten Sie die Bereitstellung nicht mithilfe von Xcopy durchführen.

Für die Bereitstellung mithilfe von Xcopy muss SQL Server Express auf dem Zielcomputer installiert sein und eine Instanz davon ausgeführt werden. Weitere Informationen finden Sie unter Benutzerinstanzen für Nichtadministratoren.

Wie verwende ich die Bereitstellung mithilfe von Xcopy?

Wenn eine Anwendung zum ersten Mal eine Verbindung von einer gerade ausgeführten Instanz SQL Server Express herstellt, fügt SQL Server Express automatisch eine MDF-Datei an. Wenn der Benutzer die Anwendung schließt, trennt SQL Server Express die MDF-Datei von der Instanz. Das Xcopy-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.

HinweisHinweis

Wenn die Länge des vollständigen Pfades 127 Zeichen übersteigt, 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 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 Liste 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 zu einer Datenbankdatei angeben. Darüber hinaus verbessert Attachdbfilename die Datenbankübertragbarkeit. Weitere Informationen zu Attachdbfilename finden Sie in 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

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

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

  • Den user instance-Parameter.

Weitere Informationen finden Sie unter Benutzerinstanzen für Nichtadministratoren.

Siehe auch

Andere Ressourcen