共用方式為


Visual Studio 資料庫功能的 Automation 命令參考

您可以使用 Visual Studio 設計階段擴充性 (DTE),在  Visual Studio 命令視窗中執行某些作業。 例如,如果您想將多個指令碼匯入資料庫專案,就可以這麼做。

在這個版本的 Visual Studio Premium 或 Visual Studio Ultimate 中,您可以:

  • 將資料庫或伺服器物件和設定匯入至資料庫專案

  • 從指令碼匯入物件和設定

  • 比較資料庫結構描述

  • 比較資料庫資料

  • 執行重構作業

  • 使用部分專案

  • 在結構描述檢視中使用物件

  • 分析資料庫程式碼

資料庫自動化命令的快速參考

下表包含一份 Visual Studio 之資料庫功能的所有 DTE 命令的快速參考:

區域

命令

資料比較

Data.NewDataComparison

Data.DataCompareExportToEditor

Data.DataCompareExportToFile

Data.DataCompareFilterAllRecords

Data.DataCompareFilterDifferentRecords

Data.DataCompareFilterIdenticalRecords

Data.DataCompareFilterOnlyInSourceRecords

Data.DataCompareFilterOnlyInTargetRecords

Data.DataCompareFilterSelectedRecords

Data.DataCompareRefresh

Data.DataCompareSelectSrcTgtDatabases

Data.DataCompareShowUpdateScript

Data.DataCompareStop

Data.DataCompareWriteUpdates

Data.DataDataCompareRefreshScriptPreview

資料產生器

Data.DataGeneratorExcludeAllColumns

Data.DataGeneratorExcludeAllTables

Data.DataGeneratorIncludeAllColumns

Data.DataGeneratorIncludeAllTables

Data.DataGeneratorPlanRefresh

Data.DataGeneratorPopulate

Data.DataGeneratorPreview

匯入

Project.ImportDatabaseSchema

Project.ImportScript

部分專案

Project.VSDBExportAsPartialProject

Project.VSDBImportPartialProject

Project.VSDBRemovePartialProject

重構

Data.RenameRefactor

Data.FullyQualifyNameRefactor

Data.MoveSchemaRefactor

Data.RenameServerDatabaseReferenceRefactor

Data.WildcardExpansionRefactor

結構描述比較

Data.NewSchemaComparison

Data.SchemaCompareExportToEditor

Data.SchemaCompareExportToFile

Data.SchemaCompareFilterAllObjects

Data.SchemaCompareFilterDifferentObjects

Data.SchemaCompareFilterEqualObjects

Data.SchemaCompareFilterMissingObjects

Data.SchemaCompareFilterNewObjects

Data.SchemaCompareFilterNonSkipObjects

Data.SchemaCompareFilterSkipObjects

Data.SchemaCompareNextChange

Data.SchemaCompareObjectDefnHorizontal

Data.SchemaCompareObjectDefnOff

Data.SchemaCompareObjectDefnVertical

Data.SchemaCompareOptions

Data.SchemaComparePreviousChange

Data.SchemaCompareRefresh

Data.SchemaCompareRefreshScriptPreview

Data.SchemaCompareRestoreUpdateActionDefaults

Data.SchemaCompareRestoreUpdateSelectionDefaults

Data.SchemaCompareSelectSourceTargetSchemas

Data.SchemaCompareShowUpdateScript

Data.SchemaCompareSpecifySQLCMDVariables

Data.SchemaCompareStop

Data.SchemaCompareWriteUpdates

結構描述檢視

Data.SchemaViewShowDependencies

Data.ShowBuiltInElementsInSchemaView

Data.ShowExternalElementsInSchemaView

Data.DeleteObjectSchemaView

Data.SynchronizeSchemaView

Data.ToggleSchemaViewBySchema

Transact-SQL 編輯器

Data.SqlEditorCancelQueryExecution

Data.SqlEditorConnect

Data.SqlEditorDisconnect

Data.SqlEditorDisplayEstimatedExecutionPlan

Data.SqlEditorEditSqlCmdFile

Data.SqlEditorExecuteSql

Data.SqlEditorIncludeActualExecutionPlan

Data.SqlEditorIncludeStatistics

Data.SqlEditorNewQueryConnection

Data.SqlEditorQueryOptions

Data.SqlEditorResetClientStatistics

Data.SqlEditorResultsAsFile

Data.SqlEditorResultsAsGrid

Data.SqlEditorResultsAsText

Data.SqlEditorSqlCmdMode

Data.SqlEditorToggleResultsPane

Data.SqlEditorValidateSqlSyntax

資料庫程式碼分析

Data.StaticCodeAnalysisConfigure

Data.StaticCodeAnalysisRun

匯入資料庫或伺服器物件和設定

您可以在 Visual Studio 命令視窗中使用 Data.ImportDatabaseSchema 命令,從資料庫或伺服器匯入物件和設定。 使用 Data.ImportDatabaseSchema 命令之前,必須先在 [方案總管] 中反白顯示資料庫或伺服器專案。 如需詳細資訊,請參閱 HOW TO:匯入資料庫物件和設定HOW TO:匯入伺服器物件和設定

您可以指定 Data.ImportDatabaseSchema 命令的下列參數:

參數

必要項

備註

/ConnectionString "YourString"

指定要從中匯入物件和設定之資料庫的連接字串。 若要匯入伺服器物件,請指定 "master" 資料庫。

/AlwaysScriptColumnCollation

指定此選項,一律以明確方式編寫資料行定序的指令碼。 如果未指定此選項,只有當資料行定序不符合資料庫定序的情況,才會明確指定資料行定序。

/IgnoreExtendedProperties

如果您不想匯入來源資料庫上的擴充屬性以及其內容,請指定此選項。

/IgnoreFileSizes

如果您不想匯入記錄檔和檔案群組的大小,請指定此選項。

/OverrideDBConfiguration

如果您想要更新資料庫專案的設定,使其符合來源資料庫專案的設定,請指定此選項。

/Overwrite

系統會忽略此選項。

/DirectoryLimit N

指定此選項,藉由限制專案中每一個資料夾所儲存之資料庫物件的數目,以減少開啟及使用資料庫專案所需的時間。 將 N 取代成您要允許磁碟機上單一目錄的檔案數目。

/IgnorePermissions

如果您不想從來源資料庫匯入權限,請指定此選項。

注意事項注意事項
根據預設,當您使用精靈匯入物件和設定時,都會忽略權限。匯入大型資料庫時,可以指定此選項來改善效能。

/AddImportedPermissionsToModel

如果您未指定 /IgnorePermissions 並且想將權限加入至資料庫的模型,請指定此選項。 如果您將權限加入至模型,則資料庫專案載入速度會變得較慢。

從指令碼匯入物件和設定

您可以在 Visual Studio 命令視窗中使用 Data.ImportScript 命令,從指令碼匯入物件定義。 使用 Data.ImportScript 命令之前,必須先在 [方案總管] 中反白顯示資料庫或伺服器專案。 如需詳細資訊,請參閱HOW TO:從指令碼匯入資料庫物件

您可以指定 Data.ImportScript 命令的下列參數:

參數

必要項

備註

/FileName MyFile.sql

指定您要匯入的指令碼檔名稱。 如果您要匯入的檔案名稱含有空格,必須用引號括住檔案名稱 (例如 "My Script.sql")。

/Encoding {Unicode | UTF32 | UTF8 | UTF7}

指定儲存檔案的編碼方式。 如果未指定編碼方式,檔案會假設為 UTF8。

/Overwrite

如果想要覆寫已在資料庫 Data 中發生的物件定義,請指定這個選項。 如果未指定此選項,將不會匯入已經存在的物件。

/IgnoreExtendedProperties

如果您不想匯入來源資料庫上的擴充屬性以及其內容,請指定此選項。

/IgnorePermissions

如果您不想從來源資料庫匯入權限,請指定此選項。

注意事項注意事項
根據預設,當您使用精靈匯入指令碼時,都會忽略權限。匯入大型指令碼時,可以指定此選項來改善效能。

/AddImportedPermissionsToModel

如果您未指定 /IgnorePermissions 並且想將權限加入至資料庫的模型,請指定此選項。 如果您將權限加入至模型,則資料庫專案載入速度會變得較慢。

比較資料庫結構描述

您可以在 Visual Studio 命令視窗中使用 Data.NewSchemaComparison 命令,以比較兩個資料庫結構描述。 您會指定來源結構描述提供者以及目標結構描述提供者。 針對每個提供者,您還會指定該提供者的類型和識別。 如需詳細資訊,請參閱 HOW TO:比較資料庫結構描述

您可以為 Data.NewSchemaComparison 和 Data.SchemaCompareSelectSourceTargetSchemas 命令的每個提供者指定下列參數:

參數

備註

/ProviderType ConnectionBased /ConnectionString "YourString"

如果您要指定資料庫的連接字串做為其中一個結構描述,請指定此語法。

/ProviderType ConnectionBased /ConnectionName ConnectionName

如果您要指定資料庫的連接名稱做為其中一個結構描述,請指定此語法。

/ProviderType ProjectBased /ProjectName ProjectName.dbproj

如果您要指定資料庫專案做為其中一個結構描述,請指定此語法。 如果您要匯入的檔案名稱含有空格,必須用引號括住檔案名稱 (例如 "My Project.dbproj")。

/ProviderType FileBased /ProjectName ProjectName.dbschema

如果您要指定已編譯的 .dbschema 檔做為其中一個結構描述,請指定此語法。 如果您要匯入的檔案名稱含有空格,必須用引號括住檔案名稱 (例如 "My Project.dbschema")。

/ProviderType FileBased /ProjectName ProjectName.dacpac

如果您想要將資料層應用程式專案 .dacpac 檔案的已編譯輸出,指定為結構描述之一,便請指定這個語法。 如果您要匯入的檔案名稱含有空格,就必須用引號括住檔案名稱 (例如 "My Project.dacpac")。

其他結構描述比較命令

下表列出結構描述比較的其他 DTE 命令,以及可以對每個命令指定的參數:

命令

參數

備註

SchemaCompareExportToEditor

將更新指令碼匯出至 Transact-SQL 編輯器

SchemaCompareExportToFile

Filename

將更新指令碼匯出至指定的檔案

SchemaCompareFilterAllObjects

移除所有篩選,所有的物件都會出現在結構描述比較結果中

SchemaCompareFilterDifferentObjects

只有不同的物件才會出現在結構描述比較結果中

SchemaCompareFilterEqualObjects

只有相同的物件才會出現在結構描述比較結果中

SchemaCompareFilterMissingObjects

只有在目標中發生,卻不在來源中發生的物件,才會出現在結構描述比較結果中

SchemaCompareFilterNewObjects

只有在來源中發生,卻不在目標中發生的物件,才會出現在結構描述比較結果中

SchemaCompareFilterNonSkipObjects

只有其更新動作未設定為略過的物件,才會出現在結構描述比較結果中

SchemaCompareFilterSkipObjects

只有其更新動作設定為略過的物件,才會出現在結構描述比較結果中

SchemaCompareNextChange

捲動結構描述比較結果以顯示下一個差異

SchemaCompareObjectDefnHorizontal

在 [結構描述比較] 結果的 [物件定義] 窗格中,並排顯示來源和目標物件定義。

SchemaCompareObjectDefnOff

隱藏結構描述比較結果之物件定義窗格的顯示

SchemaCompareObjectDefnVertical

在 [結構描述比較] 結果的 [物件定義] 窗格中,分上下顯示來源和目標物件定義。

SchemaCompareOptions

開啟結構描述比較選項對話方塊

SchemaComparePreviousChange

捲動結構描述比較結果以顯示上一個差異

SchemaCompareRefresh

重新比較來源和目標結構描述。

SchemaCompareRefreshScriptPreview

更新結構描述比較結果的結構描述更新指令碼窗格

SchemaCompareRestoreUpdateActionDefaults

將任何更新動作都還原至完成比較時的狀態

SchemaCompareRestoreUpdateSelectionDefaults

將指定之資料列的更新動作還原至完成比較時的狀態

SchemaCompareShowUpdateScript

會開啟 [結構描述更新指令碼] 視窗 (如果還未出現)

SchemaCompareSpecifySQLCMDVariables

會開啟對話方塊,您可以用來指定當比較結構描述時應該對 SQLCMD 變數使用的值

SchemaCompareStop

中止正在進行中的結構描述比較

SchemaCompareWriteUpdates

如果目標結構描述允許更新,便將更新寫入至目標結構描述。

比較資料庫資料

您可以在 Visual Studio 命令視窗中使用 Data.NewDataComparison 命令,以比較兩個資料庫中的資料。 如需詳細資訊,請參閱 HOW TO:比較及同步處理兩個資料庫的資料

您可以指定 Data.NewDataComparison 和 Data 的下列參數: DataCompareSelectSrcTgtDatabases 命令:

參數

必要項

備註

/SrcServerName ServerName

指定包含比較來源之資料的伺服器名稱。

/SrcDatabaseName DatabaseName

指定包含比較來源之資料的資料庫名稱。

/SrcUserName UserName

指定使用者名稱,以用來連接至包含比較來源之資料的資料庫。

/SrcPassword Password

指定使用者名稱的密碼,以用來連接至包含比較來源之資料的資料庫。

/SrcDisplayName SourceData

指定 [結構描述比較] 視窗中要用來代表比較來源的名稱。

/TargetServerName ServerName

指定包含比較目標之資料的伺服器名稱。

/TargetDatabaseName DatabaseName

指定包含比較目標之資料的資料庫名稱。

/TargetUserName UserName

指定使用者名稱,以用來連接至包含比較目標之資料的資料庫。

/TargetPassword Password

指定使用者名稱的密碼,以用來連接至包含比較目標之資料的資料庫。

/TargetDisplayName TargetData

指定 [結構描述比較] 視窗中要用來代表比較目標的名稱。

其他資料比較命令

下表列出資料比較的其他 DTE 命令,以及可以對每個命令指定的參數:

命令

參數

備註

DataCompareExportToEditor

將更新指令碼匯出至 Transact-SQL 編輯器。

DataCompareExportToFile

Filename

將更新指令碼匯出至指定的檔案。

DataCompareFilterAllRecords

移除所有篩選。 所有的物件都會出現在「資料比較」結果中。

DataCompareFilterDifferentRecords

只有不同的記錄才會出現在資料比較結果中。

DataCompareFilterIdenticalRecords

只有相同的記錄才會出現在資料比較結果中。

DataCompareFilterOnlyInSourceRecords

只有在來源資料庫中出現,卻未在目標資料庫中出現的記錄,才會出現在結構描述比較結果中。

DataCompareFilterOnlyInTargetRecords

只有在目標資料庫中出現,卻未在來源資料庫中出現的記錄,才會出現在結構描述比較結果中。

DataCompareFilterSelectedRecords

只有指定的記錄才會出現在資料比較結果中。

DataCompareRefresh

重新比較來源和目標資料庫中的資料。

DataCompareShowUpdateScript

顯示 [資料更新指令碼] 視窗 (如果沒有已經可見)。

DataCompareStop

中止正在進行中的資料比較。

DataCompareWriteUpdates

將更新寫入至目標資料庫。

DataCompareDataCompareRefreshScriptPreview

重新整理 [資料更新指令碼] 視窗中的指令碼。

執行重構作業

下列章節將說明您可以藉由使用 DTE 命令執行的資料庫重構作業,以及每個作業的參數。

重新命名重構

下表列出 Data.RenameRefactor 命令的參數:

參數

備註

/AssumeProjectSchemaForScripts

如果您指定這個選項,而沒有為物件指定結構描述,就會假設這些物件都在專案的預設結構描述中。 如果未指定此選項,就會將預設結構描述假設為 dbo。 這個參數是選擇性的,並具有 'true' 的預設值。 這個參數只會影響其建置動作不是 "Build" 的指令碼。 建置指令碼中的參考永遠都會假定 dbo 結構描述。

/TargetObjectName objectName

指定物件的完整名稱,包括您要重新命名的結構描述 (例如,dbo.Table1)。

/NewName newObjectName

指定重新命名之物件的新名稱,不包括結構描述 (例如,Table2)。

如需如何使用資料庫重構重新命名資料庫物件的詳細資訊,請參閱重新命名資料庫物件的所有參考

完整名稱

下表列出 Data.FullyQualifyNameRefactor 命令的參數:

參數

備註

/ScriptFilePath scriptPathAndFile

指定您要在其中完整限定名稱之檔案的完整路徑和檔案名稱。 例如:/ScriptFilePath "C:\Users\Username\Documents\Visual Studio 2010\Projects\MyDatabaseSolution\MyDatabaseProject\Schema Objects\Schemas\dbo\Views\MyView.view.sql"

如需如何使用資料庫重構完整限定物件名稱的詳細資訊,請參閱提供資料庫物件的完整名稱

將物件移至新的結構描述

下表列出 Data.MoveSchemaRefactor 命令的參數:

參數

備註

/AssumeProjectSchemaForScripts

如果您指定這個選項,而沒有為物件指定結構描述,就會假設這些物件都在專案的預設結構描述中。 如果未指定此選項,就會將預設結構描述假設為 dbo。 . 這個參數是選擇性的,並具有 'true' 的預設值。 這個參數只會影響其建置動作不是 "Build" 的指令碼。 建置指令碼中的參考永遠都會假定 dbo 結構描述。

/TargetObjectName objectName

指定您要移至新結構描述之物件的完整名稱,包括結構描述 (例如,dbo.Table1)。

/NewSchemaName schemaName

指定您要將物件移至的結構描述。

如需 將資料庫物件移至其他結構描述 如何使用資料庫重構將資料庫物件移至不同結構描述的詳細資訊,請參閱將資料庫物件移至其他結構描述

重新命名伺服器和資料庫參考

下表列出 Data.RenameServerDatabaseReferenceRefactor 命令的參數:

參數

備註

/OldServerName serverName

指定您要取代的伺服器名稱。

/NewServerName serverName

指定您要用來取代舊伺服器的新伺服器。

/OldDatabaseName databaseName

指定您要取代的資料庫名稱。

/NewDatabaseName databaseName

指定您要用來取代舊資料庫的新資料庫。

如需如何使用資料庫重構,以其他名稱或 SQLCMD 變數來取代資料庫和伺服器名稱的詳細資訊,請參閱重新命名伺服器或資料庫的參考

展開萬用字元

下表列出 Data.WildcardExpansionRefactor 命令的參數:

參數

備註

/ScriptFilePath scriptPathAndFile

指定您要在其中完整限定名稱之檔案的完整路徑和檔案名稱。 檔案名稱必須括在雙引號內。 例如:/ScriptFilePath "C:\Users\Username\Documents\Visual Studio 2010\Projects\MyDatabaseSolution\MyDatabaseProject\Schema Objects\Schemas\dbo\Views\MyView.view.sql"

如需如何使用資料庫重構在 SELECT 陳述式中展開萬用字元的詳細資訊,請參閱在 SELECT 陳述式中展開萬用字元

使用部分專案

下表列出部分專案的其他 DTE 命令,以及可以對每個命令指定的參數:

命令

參數

備註

Project.VSDBExportAsPartialProject

Filename

將 [方案總管] 中的選取項目匯出至您指定的部分專案檔。

Project.VSDBImportPartialProject

Filename

將指定的部分專案 (.files 檔案) 匯入至資料庫專案。

Project.VSDBRemovePartialProject

Filename

從資料庫專案中移除指定的部分專案。

如需部分專案的詳細資訊,請參閱開始以小組開發大型資料庫

在結構描述檢視中使用物件

下表列出結構描述檢視的其他 DTE 命令,以及可以對每個命令指定的參數:

命令

參數

備註

SchemaViewShowDependencies

在 [結構描述] 檢視中為目前選取的項目開啟 [結構描述相依性檢視器]。

ShowBuiltInElementsInSchemaView

切換內建的資料庫項目,例如 sys 結構描述,是否會出現在 [結構描述] 檢視中。

ShowExternalElementsInSchemaView

切換外部項目,例如參考資料庫的項目,是否會出現在結構描述檢視中。

DeleteObjectSchemaView

從 [結構描述] 檢視刪除選取的物件,以及根據目前的排序而顯示為子系的任何物件。

SynchronizeSchemaView

以方案之資料庫專案中的物件定義,來同步處理 [結構描述] 檢視中的物件。 如果 [結構描述] 檢視因某種原因而與物件定義脫離同步,您就只需要使用此命令。

ToggleSchemaViewBySchema

在依結構描述排序和依物件型別排序之間,切換 [結構描述] 檢視的顯示。

分析資料庫程式碼

下表列出可用來設定和套用資料庫程式碼分析規則的 DTE 命令,以及可對每個命令指定的參數:

命令

參數

備註

StaticCodeAnalysisConfigure

顯示 [屬性] 頁面,可用來設定將哪些規則套用至您的資料庫專案。

StaticCodeAnalysisRun

將已設定的規則集套用至您的資料庫專案,以識別常見的設計、命名及執行問題。

如需如何能夠使用資料庫程式碼分析的詳細資訊,請參閱 分析資料庫程式碼以改善程式碼品質

請參閱

概念

比較和同步處理資料庫結構描述

使用參考資料庫中的資料比較和同步處理一個或多個資料表中的資料

開始進行小組資料庫開發

建立和修改資料庫與伺服器物件