1

プログラム開発者の観点からは、PowerShellを「MicrosoftSQL Server 2012 LocalDB」と組み合わせて、SQLServerデータベースエンジンと対話することは非常に魅力的です。PowerShellからLocalDBインスタンスに接続し、データベースオブジェクトを操作し、Transact-SQLステートメントを実行すると問題なく機能します。これは、「Microsoft SQL Server 2012共有管理オブジェクト」(SMO)をこの組み合わせに追加する場合にも当てはまります。

私が仕事に取り掛かることができないのは、PowerShell SQLPSモジュール(「MicrosoftSQLServer2012機能パック用のMicrosoftWindowsPowerShell拡張機能」)を使用してLocalDBインスタンスをナビゲートすることです。後者はSQLServerサービス情報の取得を試みますが、LocalDBはデータベースサービスを作成しません。

それでも、LocalDBインスタンスをSQLPSモジュールから見えるようにする方法はありますか?

4

1 に答える 1

0

SQLPSやSMOを拡張して、SQLServerインスタンスのリストにLocalDBインスタンスを含める方法はないと思います。現在、SQLPSとSMOはLocalDBインスタンスモデルを理解していません。これは、以前はSQLServerExpressのユーザーインスタンスを理解していなかったのと同じです。また、通常のインスタンスとLocalDBインスタンスを混在させると、エンドユーザーを混乱させる可能性があります。LocalDBインスタンスはユーザーごとに表示され、それらを所有するユーザーのみが表示できるため、ユーザーが異なれば、同じマシン上で異なるリストを取得できます。通常のSQLServerインスタンスはマシンごとにインストールされ、すべてのユーザーに同じリストが表示されます。

独自のPowerShellプラグインまたはモジュールを作成できると思います。あなたがする必要があるのは、LocaLDB API(C / C ++を通じて利用可能)からLocalDBGetInstancesおよびLocalDBGetInstanceInfo関数に加えて、通常のSQLServerインスタンスの既存のSQLPSまたはSMOを呼び出すことです。ただし、そのようなプラグインをどのように配布するかはわかりません。

于 2012-11-03T20:06:36.020 に答える