0

SQL とファイル システム (.dts ファイル) の両方に dts パッケージがあります。両方のパッケージにクエリを実行して、パッケージ名の数、タスク情報 (タスク名など) などの情報を取得したいと考えています。

これを行う正しい方法は何ですか?

dts パッケージの一覧を表示するコマンドを実行してみました。ただし、残りの情報を取得する方法がわかりません。exec msdb..sp_enum_dtspackages

アトゥル

4

1 に答える 1

-1

私は少し前に同じ問題を抱えていて、私の答えを見つけました。私のスクリプトを見て、それが役に立つかどうかを確認してください。

dim strInputFile, strOutputFile

for each arg in WScript.Arguments
    select case mid(arg, 1, 3)
        case "/i:"
            strInputFile = mid(arg, 4)
        case "/o:" 
            strOutputFile = mid(arg, 4)
    end select
next

dim oPackage
set oPackage = CreateObject("DTS.Package2")
oPackage.LoadFromStorageFile strInputFile, "", "", "", ""

dim FileSys, OutputFile
set FileSys = CreateObject("Scripting.FileSystemObject")
set OutputFile = FileSys.OpenTextFile (strOutputFile, 2, 1)

dim oTasks, oProperties
set oTasks = oPackage.Tasks

for each oTask in oTasks
    OutputFile.write (vbCrLf)
    OutputFile.write (string(12 + len(oTask.Description), "-"))
    OutputFile.write (vbCrLf)
    OutputFile.write ("-- Task: "  & oTask.Description & " --") 
    OutputFile.write (vbCrLf)
    OutputFile.write (string(12 + len(oTask.Description), "-"))
    OutputFile.write (vbCrLf)

    set oProperties = oTask.Properties

    for each oProperty in oProperties
        OutputFile.write (oProperty.Name & " = [" & trim(oProperty.Value) & "]")
        OutputFile.write (vbCrLf)
    next 
next 

OutputFile.close

set OutputFile = Nothing
set oTasks = Nothing
set oProperties = Nothing
set oPackage = Nothing
set FileSys = Nothing

重要なのは、ファイル システムまたは SQL Server のいずれかから DTS パッケージをロードする方法を知ることです。

例えば

...
dim oPackage
set oPackage = CreateObject("DTS.Package2")
oPackage.LoadFromStorageFile strInputFile, "", "", "", ""
...

詳細については、MSDN を参照してください:
http://msdn.microsoft.com/en-us/library/aa197290%28v=sql.80%29.aspx (LoadFromSQLServer メソッド)
http://msdn.microsoft.com/en -us/library/aa197287%28v=sql.80%29.aspx (LoadFromStorageFile メソッド)

于 2013-04-18T00:00:13.900 に答える