1

我想为单元测试创​​建 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,每次我都会从 UT.MasterTask(SelectFromServer 和 SelectFromDatabase Column) 表 > > 创建一个动态 > 源连接并执行在 UT.MasterTask 表的 SelectStatement 列中定义的任务并插入 XML结果在 UT.SelectResult 表中。注意:结果列不固定。每行需要单个 xml 条目。执行在 UT.MasterTask 的 SelectStatement 中定义的查询

4

0 回答 0