Share via


Xcopy 部署 (SQL Server Express)

Xcopy 是部署應用程式和 SQL Server Express 資料庫的一個簡化方式。Xcopy 部署可讓您將新的應用程式 (.exe) 和資料庫 (.mdf) 檔案複製到另一部電腦,或是複製到相同電腦上的另一個位置。不需要進行其他組態設定。

若要將應用程式散發給使用者,您可以只傳送 .exe 和 .mdf 檔案。每個使用者都可以將這些檔案儲存在本機中,然後只要按兩下 .exe 檔,就可以啟動應用程式。如果您的應用程式使用複寫,就不應該使用 Xcopy 部署。

若要使用 Xcopy 部署,SQL Server Express 必須安裝在目標電腦上,而且必須有執行中的執行個體。如需詳細資訊,請參閱<非管理員的使用者執行個體>。

如何使用 Xcopy 部署?

當應用程式初次從執行中的 SQL Server Express 執行個體建立連接時,SQL Server Express 將會自動附加 .mdf 檔案。當使用者關閉應用程式時,SQL Server Express 便會將 .mdf 檔案從執行個體卸離。Xcopy 功能可讓 .mdf 檔案完全具有可攜式。您可以同時複製及移動檔案,也可以在同一個執行個體上同時執行檔案的多個複本。

邏輯資料庫命名

除非您應用程式中的連接字串指定了邏輯名稱,否則 SQL Server Express 便會在附加資料庫時自動產生資料庫的邏輯名稱。這個邏輯名稱必須是唯一的。SQL Server Express 會使用磁碟機代號、目錄名稱和資料庫檔案名稱做為邏輯名稱。例如,如果您的 .mdf 檔案位於 C:\Program Files\My Application\Data\MainData.mdf 路徑,SQL Server Express 便會指定與 :C:\Program Files\My Application\Data\MainData.mdf 路徑完全相符的邏輯資料庫名稱。

[!附註]

如果完整路徑和檔案名稱的長度超過 127 個字元,系統便會縮短邏輯資料庫名稱並使用 GUID 為前置詞,這樣可確保邏輯名稱的唯一性。

記錄檔建立與命名

當您部署應用程式時,只能將應用程式檔案和 .mdf 檔案包含在 Xcopy 中,不能包含記錄檔 (.ldf)。SQL Server Express 會在附加資料庫時自動建立新的記錄檔。SQL Server Express 會將記錄檔命名為 database_name_log.ldf。如果 .mdf 檔案的相同目錄中已經有同名檔案存在,則會使用現有的檔案。

Xcopy 部署的使用限制

使用 Xcopy 部署處理您的應用程式時,某些 SQL Server Express 功能可能無法如預期地運作。下列清單描述可能發生的限制。

  • 包含邏輯資料庫名稱的任何 Transact-SQL 程式碼都無法運作。

    由於資料庫的邏輯名稱需視檔案位置而定,而檔案位置又會隨著每個 Xcopy 而改變,因此指定邏輯資料庫名稱的任何程式碼都會失效。

  • 複寫案例無效。

    複寫需要永續的邏輯資料庫名稱。如果您的應用程式使用複寫,就不應該使用 Xcopy 部署。

SQL Server Express 執行個體上管理員的 Xcopy 部署

如果要讓應用程式使用 SQL Server Express 的 Xcopy 部署功能,您必須確定應用程式中使用的連接字串已包含適當的參數:

  • 請使用 data source 參數,並將電腦名稱改成英文句號 (.) 或 (local)。除非確定 SQL Server Express 一定會安裝在不具名的執行個體上,否則您還必須指定執行個體的名稱。

  • 請使用 initial catalog 或 database 參數,但不要設定參數值。

  • 請加入 AttachDBFileName 參數,並將它設定為 .mdf 檔案的名稱和路徑。Attachdbfilename 是 SqlClient 連接字串選項,可在執行階段附加資料庫,並自動產生資料庫名稱。DataDirectory 關鍵字可讓您指定資料庫檔案的相對路徑。Attachdbfilename也有助於提高資料庫的可攜性。如需有關使用 Attachdbfilename 的詳細資訊,請參閱 Visual Studio 2005 文件集。

下列連接字串會將 MyDb.mdf 資料庫檔案 (與應用程式可執行檔位於同一個資料夾) 附加到在本機電腦上執行的 SQL Server Express 執行個體。

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

SQL Server Express 執行個體上非管理員的 Xcopy 部署

若要在 SQL Server Express 執行個體上針對不具備系統管理權限的使用者部署應用程式,您必須指定以下項目:

  • 連接字串中用於 Xcopy 部署的參數。

  • user instance 參數。

如需詳細資訊,請參閱<非管理員的使用者執行個體>。

請參閱

其他資源