SSIS包:使用XML结果进行动态连接

时间:2012-10-30 11:36:03

标签: xml dynamic ssis

  

我想为单元测试创​​建SSIS包以自动运行。   我有一些问题,我想每天在不同的服务器上运行,需要存储   导致中央数据库。问题是我想要XML结果。   我可以动态连接不同的服务器并将结果存储在中央数据库中但是这样   我有XML的结果并遇到问题。   示例脚本

Use AdventureWorks2008
Go
Create Schema UT
Go
CREATE TABLE [UT].[MasterTask](
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [UTName] [varchar](100) NULL,
    [SelectFromServer] [varchar](50) NULL,
    [SelectFromDatabase] [varchar](50) NULL,
    [SelectStatement] [varchar](max) NULL,
    [CreatedDate] [datetime] NULL,
    [UpdatedDate] [datetime] NULL
)
CREATE TABLE [UT].[SelectResult](
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [MasterTaskID] [int] NULL,
    [Result] [xml] NULL,
    [CreatedDate] [datetime] NULL
)

Select * From UT.MasterTask
Insert Into UT.MasterTask Values
('Testing','Local','AdventureWorks2008','SELECT Name, ProductNumber, ListPrice AS Price
FROM Production.Product 
WHERE ProductLine = ''R'' 
AND DaysToManufacture < 4
ORDER BY Name ASC;',GETDATE(),GETDATE())
Insert Into UT.MasterTask Values
('Testing','Server1','AdventureWorks2008','SELECT  TOP 100 P.ProductID, 
 P.Name, 
 P.ListPrice, 
 P.Size, 
 P.ModifiedDate, 
 SOD.UnitPrice, 
 SOD.UnitPriceDiscount,
 SOD.OrderQty,
 SOD.LineTotal 
FROM Sales.SalesOrderDetail SOD 
INNER JOIN Production.Product P 
 ON SOD.ProductID = P.ProductID 
WHERE SOD.UnitPrice > 1000 
ORDER BY SOD.UnitPrice DESC',GETDATE(),GETDATE())
Insert Into UT.MasterTask Values
('Testing','Server2','AdventureWorks2008','Select * From Person.BusinessEntity',GETDATE(),GETDATE())
  

这里有三个数据库服务器Server,Server1和Server2,每次我都会创建一个动态&gt;来自UT.MasterTask(SelectFromServer和SelectFromDatabase Column)表的源连接&gt; &GT;并执行在UT.MasterTask表的SelectStatement列中定义的任务并插入   XML结果在UT.SelectResult表中。   注意:   结果列未修复。   每行需要单个xml条目。   执行在UT.MasterTask的SelectStatement中定义的查询

0 个答案:

没有答案