T-SQL - 在函数中使用sp_xml_preparedocument

时间:2014-03-18 07:13:15

标签: sql sql-server xml user-defined-functions

我遇到了函数(UDF)和系统过程的问题。 我无法在UDF中使用过程。 但这个问题有解决办法吗?

我有一个视图,在视图中将调用函数xmlHistory。

在函数中,我将准备我的XML,然后我将返回结果。 但由于EXEC sp_xml_preparedocumet的原因,我无法运行该功能。

是否有其他解决方案可以使用sp_xml_preparedocumet?

程序
SELECT 
        irsys.referencenumber AS [Ticket-Nr], 
        dbo.xmlHistory(irsys.caseid,1,'AssignedRole') AS [Role] ...



CREATE FUNCTION [dbo].[xmlHistory] (@caseID int, @historyID int, @name varChar(50) )
RETURNS varChar

AS
BEGIN
    DECLARE @val varChar(50)
    DECLARE @docHandle int
    DECLARE @xmlDocument nvarchar(max) -- or xml type
        SET @xmlDocument = (SELECT [historyitem]
          FROM [HLDATA].[dbo].[hlsyscasehistory]
          where caseid = @caseID and historyid = @historyID)
        EXEC sp_xml_preparedocument @docHandle OUTPUT, @xmlDocument
        -- Use OPENXML to provide rowset consisting of customer data.

        set @val = (SELECT Value 
        FROM OPENXML(@docHandle, 'HistoryDataDto/ODEs/ODE/Attributes/Attribute',2) 

        WITH (Name varchar(50), Value varchar(50))

        where name = @name)
     RETURN @val
END

GO

谢谢

菲利克斯

0 个答案:

没有答案