2010年11月3日水曜日

Windows Internal Database について

WSUS 3.0 などをインストールすると一緒にインストールされます。

Microsoft SQL Server Management Studio Express をインストールして、Server Name に[\\.\pipe\MSSQL$MICROSOFT##SSEE\sql\query] を指定することにより、GUI で扱えます。

CLI によるツールとして、sqlcmd があります。
ダウンロードの詳細 : SQL Server 2005 用 Feature Pack (2007 年 2 月) より、「Microsoft SQL Server Native Client」と「Microsoft SQL Server 2005 コマンド ライン クエリ ユーティリティ」をインストールします。
>sqlcmd -S \\.\pipe\MSSQL$MICROSOFT##SSEE\sql\query -E -Q "select count(*) from SUSDB.PUBLIC_VIEWS.vUpdate"
のようにアクセスできます。

タブ区切りのテキストファイルで出力する例を示します。WSUS の PUBLIC_VIEWS からデータを抽出する例です。
set SQLCMD=sqlcmd -S \\.\pipe\MSSQL$MICROSOFT##SSEE\sql\query -E -d SUSDB -s " " -W -w 65535 -k 1 -h -1
%SQLCMD% -Q "select * from PUBLIC_VIEWS.vCategory" -o "vCategory.txt"
%SQLCMD% -Q "select * from PUBLIC_VIEWS.vCategoryText where LocaleId = 1041" -o "vCategoryText.txt"
%SQLCMD% -Q "select * from PUBLIC_VIEWS.vClassification" -o "vClassification.txt"
%SQLCMD% -Q "select * from PUBLIC_VIEWS.vClassificationText where LocaleId = 1041" -o "vClassificationText.txt"
%SQLCMD% -Q "select * from PUBLIC_VIEWS.vComputerTargetGroup" -o "vComputerTargetGroup.txt"
%SQLCMD% -Q "select * from PUBLIC_VIEWS.vUpdate" -o "vUpdate.txt"
%SQLCMD% -Q "select * from PUBLIC_VIEWS.vUpdateApproval" -o "vUpdateApproval.txt"
%SQLCMD% -Q "select * from PUBLIC_VIEWS.vUpdateInCategory" -o "vUpdateInCategory.txt"
%SQLCMD% -Q "select * from PUBLIC_VIEWS.vUpdateText where LocaleId = 1041" -o "vUpdateText.txt"
上記のファイルをバッチファイルとして実行します。
オプション -s は、区切り文字を指定します。タブ文字をダブルコーテーションで囲んでいます。
オプション -W は、出力から文字列の後ろに続く空白を削除します。
オプション -w は、出力幅を指定します。小さすぎると、1行が改行されていまいます。
オプション -k は、タブ、改行文字などの制御文字を空白に置換します。
オプション -h は、ヘッダを削除するために指定します。
オプション -Q に SELECT 文を指定します。
オプション -o に出力するテキストフィアルのファイル名を指定します。

上記のスクリプトで出力されるテキストファイルは、最後に抽出された行数が出力されるので、テキストエディタで開いて削除しておきます。


参考

0 件のコメント: