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 |
無 |
將已設定的規則集套用至您的資料庫專案,以識別常見的設計、命名及執行問題。 |
如需如何能夠使用資料庫程式碼分析的詳細資訊,請參閱 分析資料庫程式碼以改善程式碼品質。