PowerShell スナップインや、SQL Server と対話するその他の "ツール" について少し混乱しています。これらのツールの違いは次のとおりです。
- SMO
- SQLPS モジュール
- SQLPSX
- SQL Server PowerShell プロバイダー
PowerShell スナップインや、SQL Server と対話するその他の "ツール" について少し混乱しています。これらのツールの違いは次のとおりです。
SMOまたはSQL Server 管理オブジェクトは、開発者が SQL Server を管理するアプリケーションを作成するために使用する .NET クラスのセットです。SQL Server 2005 で導入された SMO クラスは、SQL Server の各リリースで更新され、新しい管理機能に対応しています。SMO は、SQL Server Management Studio およびリスト内の残りのツールを構築するために使用される基になる API です。
SQLPS モジュールは、SQL Server 2012 で導入された Powershell モジュールです。2012 リリースより前は、SQL Server でのPowershellサポートはミニシェル (SQL 2008 で導入された sqlps.exe) によって提供され、SQL Server 2008 R2 でいくつかのマイナーな拡張が行われました。SQL ミニシェルの詳細については、http://sev17.com/2010/05/the-truth-about-sqlps-and-powershell-v2/を参照してください。ミニシェル sqlps.exe は、sqlps というモジュールと同様に、SQL Server 2012 にも存在します。SQL 2012 Powershell の実装に関する説明は、http ://sev17.com/2011/07/denali-sqlps-first-impressions/ にあります。 注: SQL 2012 (2008 および 2008 R2) より前のリリース用の独自のモジュールを作成するために、sqlps コマンドレットとプロバイダーの周りに小さなラッパーを構築することもできます。ここでラッパーを作成しました
SQLPSXは、SQL Server が Powershell をサポートする前の 2007 年 9 月に私が取り組み始めた CodePlex プロジェクトです。最初のリリースは 2008 年 7 月に公開されました。SQLPSX プロジェクトはほとんどがスクリプト ベースのモジュールであり、スクリプトのソース コードを読むことができます。SQLPSX プロジェクトは、SQLPS モジュールの実装でカバーされていない多くのタスクをまだカバーしています。sqlps モジュールと sqlpsx モジュールの間で機能が重複しないように努めましたが、2012 リリースでは、SSIS とバックアップ/復元機能に一部重複があります。SQLPSX プロジェクトの詳細については、http : //sqlpsx.codeplex.com/ を参照してください。
SQL Server Powershell プロバイダー-- まず、プロバイダーを定義しましょう。プロバイダーを使用すると、ユーザーは、cd、dir、コピー、削除などを行うファイル システムなどのデータを操作できます。 注: プロバイダーはすべての機能を実装しているわけではありません。削除する。
Powershell には、ファイル システム プロバイダーやレジストリ プロバイダーなど、いくつかのプロバイダーが付属しています。get-psprovider を実行すると、システムにインストールされているプロバイダーを確認できます。SQL Server 2008 以降 (ただし、プロバイダーには下位互換性があります) には、SQL Server プロバイダーが含まれています。プロバイダーは、SQL Server インスタンスをナビゲートし、データベースやテーブルなどに cd できる SQL Server "ドライブ" を実装します。機能は、SQL Server Management Studio で見られるものと非常に似ています。よくある質問の 1 つは、SQL Server テーブルのどこでデータを参照できるかということですが、答えはノーです。SQL Server プロバイダーは、SMO オブジェクトの管理に使用されます。コマンドレット invoke-sqlcmd を使用して、古いコマンド ライン バージョンの sqlcmd で実行できるように、クエリを実行できます。