SSIS包:与XML结果的动态连接

SSIS包:与XML结果的动态连接,xml,dynamic,ssis,Xml,Dynamic,Ssis,我想为自动运行的单元测试创建SSIS包。 我有一些查询,我想每天在不同的服务器上运行,需要存储 结果在中央数据库中。问题是我想要XML格式的结果。 我可以动态连接不同的服务器,并将结果存储在中央数据库中,但是 当我在XML中得到一个结果并遇到问题时。 示例脚本 使用AdventureWorks2008 去 创建模式UT 去 创建表[UT]。[MasterTask]( [ID][int]标识(1,1)不为空, [UTName][varchar](100)空, [SelectFromServer][

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

使用AdventureWorks2008
去
创建模式UT
去
创建表[UT]。[MasterTask](
[ID][int]标识(1,1)不为空,
[UTName][varchar](100)空,
[SelectFromServer][varchar](50)空,
[SelectFromDatabase][varchar](50)空,
[SelectStatement][varchar](最大值)NULL,
[CreatedDate][datetime]空,
[UpdateDate][datetime]空
)
创建表[UT]。[SelectResult](
[ID][int]标识(1,1)不为空,
[MasterTaskID][int]NULL,
[结果][xml]空,
[CreatedDate][datetime]空
)
从UT.MasterTask中选择*
插入UT.MasterTask值
(“测试”、“本地”、“AdventureWorks2008”、“选择名称、产品编号、ListPrice作为价格
从生产。产品
其中ProductLine=''R''
和Daydomatum断裂<4
按名称ASC;'、GETDATE()、GETDATE()排序
插入UT.MasterTask值
('Testing'、'Server1'、'AdventureWorks2008'、'SELECT TOP 100 P.ProductID、,
P.姓名,
P.ListPrice,
P.尺寸,
P.ModifiedDate,
单价,
超低价折扣,
订单数量,
超氧化物歧化酶
来自Sales.SalesOrderDetail
内部连接生产。产品P
关于SOD.ProductID=P.ProductID
其中,单价>1000
按SOD.UnitPrice DESC',GETDATE(),GETDATE()订购
插入UT.MasterTask值
('Testing'、'Server2'、'AdventureWorks2008'、'Select*From Person.BusinessEntity',GETDATE(),GETDATE())
这里有三个数据库服务器Server、Server1和Server2,每次我都会从UT.MasterTask(SelectFromServer和SelectFromDatabase列)表>>创建一个动态>源连接,并执行在UT.MasterTask表的SelectStatement列中定义的任务,然后插入 UT.SelectResult表中的XML结果。 注: 结果列不是固定的。 每行需要一个xml条目。 执行UT.MasterTask的SelectStatement中定义的查询

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())