Visual Studio のデータベース機能のオートメーション コマンド リファレンス

Visual Studio のデザイン時拡張機能 (DTE: Design Time Extensibility) を使用すると、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 コマンドを使用する前に、ソリューション エクスプローラーでデータベースまたはサーバー プロジェクトを強調表示します。 詳細については、「方法: データベース オブジェクトと設定をインポートする」または「方法: サーバー オブジェクトと設定をインポートする」を参照してください。

Data.ImportDatabaseSchema コマンドには、次のパラメーターを指定できます。

パラメーター

必須

説明

/ConnectionString "YourString"

オブジェクトと設定のインポート元となるデータベースへの接続文字列を指定します。 サーバー オブジェクトをインポートするには、"master" データベースを指定します。

/AlwaysScriptColumnCollation

列の照合順序を常に明示的に記述するには、このオプションを指定します。 このオプションを指定しない場合、列の照合順序は、データベースの照合順序と一致しない場合にのみ明示的に指定されます。

/IgnoreExtendedProperties

ソース データベースとそのコンテンツの拡張プロパティをインポートしない場合は、このオプションを指定します。

/IgnoreFileSizes

ログ ファイルおよびファイル グループのサイズをインポートしない場合は、このオプションを指定します。

/OverrideDBConfiguration

ソース データベースの設定と一致するようにデータベース プロジェクトの設定を更新する場合は、このオプションを指定します。

/Overwrite

このオプションは無視されます。

/DirectoryLimit N

データ内の各フォルダーに格納されるデータベース オブジェクトの数を制限することで、データベース プロジェクトを開いて使用するのに必要な時間を短くするには、このオプションを指定します。 N は、ディスク上の 1 つのディレクトリに許可するファイル数に置き換えます。

/IgnorePermissions

ソース データベースからアクセス許可をインポートしない場合は、このオプションを指定します。

メモメモ
既定では、ウィザードを使用してオブジェクトと設定をインポートする場合、アクセス許可は無視されます。このオプションを指定すると、サイズの大きいデータベースをインポートするときのパフォーマンスを向上できます。

/AddImportedPermissionsToModel

/IgnorePermissions を指定しない場合、データベースのモデルにアクセス許可を追加するには、このオプションを指定します。 モデルにアクセス許可を追加すると、データベース プロジェクトの読み込み速度が低下します。

スクリプトからのオブジェクトと設定のインポート

Visual Studio のコマンド ウィンドウで Data.ImportScript コマンドを使用すると、スクリプトからオブジェクトの定義をインポートできます。 Data.ImportScript コマンドを使用する前に、ソリューション エクスプローラーでデータベースまたはサーバー プロジェクトを強調表示します。 詳細については、「方法 : スクリプトからデータベース オブジェクトをインポートする」を参照してください。

Data.ImportScript コマンドには、次のパラメーターを指定できます。

パラメーター

必須

メモ

/FileName MyFile.sql

インポートするスクリプト ファイルの名前を指定します。 空白を含むファイル名をインポートする場合は、ファイル名を引用符で囲む必要があります ("My Script.sql" など)。

/Encoding {Unicode | UTF32 | UTF8 | UTF7}

ファイルを保存するエンコードを指定します。 エンコードを指定しない場合、ファイルは UTF8 になります。

/Overwrite

データベース データの既存のオブジェクト定義を上書きする場合は、このオプションを指定します。 このオプションを指定しない場合、既に存在するオブジェクトはインポートされません。

/IgnoreExtendedProperties

ソース データベースとそのコンテンツの拡張プロパティをインポートしない場合は、このオプションを指定します。

/IgnorePermissions

ソース データベースからアクセス許可をインポートしない場合は、このオプションを指定します。

メモメモ
既定では、ウィザードを使用してスクリプトをインポートする場合、アクセス許可は無視されます。このオプションを指定すると、サイズの大きいスクリプトをインポートするときのパフォーマンスを向上できます。

/AddImportedPermissionsToModel

/IgnorePermissions を指定しない場合、データベースのモデルにアクセス許可を追加するには、このオプションを指定します。 モデルにアクセス許可を追加すると、データベース プロジェクトの読み込み速度が低下します。

データベース スキーマの比較

Visual Studio のコマンド ウィンドウから Data.NewSchemaComparison コマンドを使用して、2 つのデータベース スキーマを比較できます。 このとき、ソース スキーマ プロバイダーとターゲット スキーマ プロバイダーを指定します。 各プロバイダーについて、プロバイダーの種類と ID を指定します。 詳細については、「方法: データベース スキーマを比較する」を参照してください。

Data.NewSchemaComparison コマンドと Data.SchemaCompareSelectSourceTargetSchemas コマンドには、プロバイダーごとに次のパラメーターを指定できます。

パラメーター

メモ

/ProviderType ConnectionBased /ConnectionString "YourString"

スキーマの 1 つとしてデータベースの接続文字列を指定する場合は、この構文を指定します。

/ProviderType ConnectionBased /ConnectionName ConnectionName

スキーマの 1 つとしてデータベースの接続名を指定する場合は、この構文を指定します。

/ProviderType ProjectBased /ProjectName ProjectName.dbproj

スキーマの 1 つとしてデータベース プロジェクトを指定する場合は、この構文を指定します。 空白を含むファイル名をインポートする場合は、ファイル名を引用符で囲む必要があります ("My Project.dbproj" など)。

/ProviderType FileBased /ProjectName ProjectName.dbschema

スキーマの 1 つとしてコンパイル済みの .dbschema ファイルを指定する場合は、この構文を指定します。 空白を含むファイル名をインポートする場合は、ファイル名を引用符で囲む必要があります ("My Project.dbschema" など)。

/ProviderType FileBased /ProjectName ProjectName.dacpac

データ層アプリケーション プロジェクトのコンパイル済み出力 (.dacpac ファイル) をスキーマの 1 つとして指定する場合は、この構文を指定します。 空白を含むファイル名をインポートする場合は、ファイル名を引用符で囲む必要があります ("My Project.dacpac" など)。

追加のスキーマ比較コマンド

次の表に、スキーマ比較の追加の DTE コマンドと、それぞれのコマンドに指定できるパラメーターを示します。

コマンド

パラメーター

メモ

SchemaCompareExportToEditor

なし

更新スクリプトを Transact-SQL エディターにエクスポートします。

SchemaCompareExportToFile

ファイル名

更新スクリプトを指定されたファイルにエクスポートします。

SchemaCompareFilterAllObjects

なし

すべてのフィルターを削除します。すべてのオブジェクトはスキーマ比較の結果に表示されます。

SchemaCompareFilterDifferentObjects

なし

異なるオブジェクトのみがスキーマ比較の結果に表示されます。

SchemaCompareFilterEqualObjects

なし

同じオブジェクトのみがスキーマ比較の結果に表示されます。

SchemaCompareFilterMissingObjects

なし

ターゲット内には存在し、ソースには存在しないオブジェクトのみがスキーマ比較の結果に表示されます。

SchemaCompareFilterNewObjects

なし

ソース内には存在し、ターゲットには存在しないオブジェクトのみがスキーマ比較の結果に表示されます。

SchemaCompareFilterNonSkipObjects

なし

更新アクションがスキップに設定されていないオブジェクトのみがスキーマ比較の結果に表示されます。

SchemaCompareFilterSkipObjects

なし

更新アクションがスキップに設定されているオブジェクトのみがスキーマ比較の結果に表示されます。

SchemaCompareNextChange

なし

スキーマ比較の結果をスクロールして、次の相違点を表示します。

SchemaCompareObjectDefnHorizontal

なし

ソースとターゲットのオブジェクト定義を、スキーマ比較の結果の [オブジェクトの定義] ペインに横並びに表示します。

SchemaCompareObjectDefnOff

なし

スキーマ比較の結果の [オブジェクトの定義] ペインの表示を非表示にします。

SchemaCompareObjectDefnVertical

なし

ソースとターゲットのオブジェクト定義を、スキーマ比較の結果の [オブジェクトの定義] ペインの他の定義の 1 つ上に表示します。

SchemaCompareOptions

なし

[スキーマ比較のオプション] ダイアログ ボックスが開きます。

SchemaComparePreviousChange

なし

スキーマ比較の結果をスクロールして、前の相違点を表示します。

SchemaCompareRefresh

なし

ソース スキーマとターゲット スキーマを再比較します。

SchemaCompareRefreshScriptPreview

なし

スキーマ比較の結果の [スキーマ更新スクリプト] ウィンドウを更新します。

SchemaCompareRestoreUpdateActionDefaults

なし

更新アクションを、比較が完了した時点の状態に戻します。

SchemaCompareRestoreUpdateSelectionDefaults

なし

指定された行の更新アクションを、比較が完了した時点の状態に戻します。

SchemaCompareShowUpdateScript

なし

[スキーマ更新スクリプト] ウィンドウが開いていない場合は開きます。

SchemaCompareSpecifySQLCMDVariables

なし

スキーマの比較時に SQLCMD 変数に使用される値を指定するために使用できるダイアログ ボックスを開きます。

SchemaCompareStop

なし

進行中のスキーマの比較を停止します。

SchemaCompareWriteUpdates

なし

ターゲット スキーマで更新が許可される場合に、更新をターゲット スキーマに書き込みます。

データベース データの比較

Visual Studio のコマンド ウィンドウから Data.NewDataComparison コマンドを使用して、2 つのデータベース内のデータを比較できます。 詳細については、「方法: 2 つのデータベースのデータを比較して同期させる」を参照してください。

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

ファイル名

更新スクリプトを指定されたファイルにエクスポートします。

DataCompareFilterAllRecords

なし

すべてのフィルターを削除します。 すべてのオブジェクトはデータ比較の結果に表示されます。

DataCompareFilterDifferentRecords

なし

異なるレコードのみデータ比較の結果に表示されます。

DataCompareFilterIdenticalRecords

なし

同じレコードのみデータ比較の結果に表示されます。

DataCompareFilterOnlyInSourceRecords

なし

ソース データベースには表示され、ターゲット データベースには表示されないレコードのみデータ比較の結果に表示されます。

DataCompareFilterOnlyInTargetRecords

なし

ターゲット データベースには表示され、ソース データベースには表示されないレコードのみデータ比較の結果に表示されます。

DataCompareFilterSelectedRecords

なし

指定されたレコードのみ、データ比較の結果に表示されます。

DataCompareRefresh

なし

ソース データベースとターゲット データベースのデータを再比較します。

DataCompareShowUpdateScript

なし

[データ更新スクリプト] ウィンドウが表示されていない場合は表示します。

DataCompareStop

なし

進行中のデータ比較を停止します。

DataCompareWriteUpdates

なし

更新をターゲット データベースに書き込みます。

DataCompareDataCompareRefreshScriptPreview

なし

[データ更新スクリプト] ウィンドウのスクリプトを更新します。

リファクタリング操作の実行

以降のセクションでは、DTE コマンドを使用して実行できるデータベース リファクタリング操作と、それらの各操作のパラメーターについて説明します。

名前の変更リファクタリング

次の表に、Data.RenameRefactor コマンドのパラメーターを示します。

パラメーター

メモ

/AssumeProjectSchemaForScripts

このオプションを指定すると、オブジェクトに対してスキーマが指定されていない場合、オブジェクトはプロジェクトの既定のスキーマ内にあると見なされます。 このオプションを指定しないと、既定のスキーマが dbo と見なされます。 このパラメーターは省略可能であり、既定値は 'true' です。 このパラメーターは、ビルド アクションが "ビルド" であるスクリプトにのみ影響します。 ビルド スクリプト内の参照は常に 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' です。 このパラメーターは、ビルド アクションが "ビルド" であるスクリプトにのみ影響します。 ビルド スクリプト内の参照は常に 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

ファイル名

ソリューション エクスプローラーでの選択を、指定された部分プロジェクト ファイルにエクスポートします。

Project.VSDBImportPartialProject

ファイル名

指定された部分プロジェクト (.files ファイル) をデータベース プロジェクトにインポートします。

Project.VSDBRemovePartialProject

ファイル名

データベース プロジェクトから指定された部分プロジェクトを削除します。

部分プロジェクトの詳細については、「大規模なデータベースのチーム開発の開始」を参照してください。

スキーマ ビュー内のオブジェクトの使用

次の表に、スキーマ ビューの追加の DTE コマンドと、それぞれのコマンドに指定できるパラメーターを示します。

コマンド

パラメーター

説明

SchemaViewShowDependencies

なし

スキーマ ビューの現在の選択のスキーマ依存関係ビューアーを開きます。

ShowBuiltInElementsInSchemaView

なし

sys スキーマなど、組み込みのデータベース要素をスキーマ ビューに表示するかどうかを指定します。

ShowExternalElementsInSchemaView

なし

参照先データベースの要素など、外部の要素をスキーマ ビューに表示するかどうかを指定します。

DeleteObjectSchemaView

なし

選択したオブジェクトを、現在の並べ替えに基づいて、子として表示されるすべてのオブジェクトと共にスキーマ ビューから削除します。

SynchronizeSchemaView

なし

スキーマ ビュー内のオブジェクトを、ソリューション内のデータベース プロジェクトのオブジェクト定義と同期します。 スキーマ ビューがオブジェクト定義と同期せずに終了した場合にのみ、このコマンドを使用する必要があります。

ToggleSchemaViewBySchema

なし

スキーマ ビューの表示を、スキーマ別に並べ替えるか、オブジェクトの種類別に並べ替えるかを指定します。

データベース コードの分析

次の表に、データベース コード分析規則の構成と適用に使用できる DTE コマンドと、それぞれのコマンドに指定できるパラメーターを示します。

コマンド

パラメーター

説明

StaticCodeAnalysisConfigure

なし

データベース プロジェクトに適用する規則を構成するために使用できるプロパティ ページを表示します。

StaticCodeAnalysisRun

なし

データベース プロジェクトに構成されている一連の規則を適用し、共通のデザイン、名前付け、およびパフォーマンスの問題を特定します。

データベース コード分析の使用方法の詳細については、「データベース コードの分析によるコードの品質の向上」を参照してください。

参照

概念

データベース スキーマの比較と同期

1 つ以上のテーブルのデータを参照データベースのデータと比較して同期する

データベースのチーム開発の開始

データベース オブジェクトおよびサーバー オブジェクトの作成と変更