2013-04-04 89 views
0

我在SQL &文件系统(.dts文件)中都有dts pacakege。我想要查询这两个软件包以获取包裹名称,任务信息(任务名称等)的信息。如何查询SQL dts包

这样做的正确方法是什么?

我试着执行给出dts包列表的命令。但是我不知道如何检索其余的信息。 EXEC msdb..sp_enum_dtspackages

阿图尔

+0

使用'msdb..sysdtspackages' – praveen 2013-04-04 06:12:04

+0

感谢乌尔响应,我执行了以下查询,但只有第一个查询返回数据,其余查询中没有返回行。 SELECT * FROM msdb..sysdtspackages - 这回的数据 SELECT * FROM msdb..sysdtscategories SELECT * FROM msdb..sysdtspackagelog SELECT * FROM msdb..sysdtstasklog SELECT * FROM msdb..sysdtssteplog 此外如何获得信息关于独立的dts文件。 – 2013-04-04 06:24:24

+0

我得到这个链接查询独立软件包,但我无法注册“Microsoft DTSPackage对象库”,我试图注册它给出这个错误消息“该模块”dtspkg.dll“被加载但调用DllRegisterServer失败错误代码0x8002801c“msdn链接http://support.microsoft.com/kb/241249 – 2013-04-04 06:32:18

回答

-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方法)