Sql server 在从.net传递到SQL server的存储过程中解析Xml时出现问题

Sql server 在从.net传递到SQL server的存储过程中解析Xml时出现问题,sql-server,xml,Sql Server,Xml,我对从.net传递到存储过程的xml有一个问题,下面是传递的xml DECLARE @XMLDoc AS XML SET @XMLDoc = '<ArrayOfProblemType xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/DatasetServices.JobServices.D

我对从.net传递到存储过程的xml有一个问题,下面是传递的xml

DECLARE @XMLDoc AS XML 

SET @XMLDoc = 
            '<ArrayOfProblemType xmlns:i="http://www.w3.org/2001/XMLSchema-instance" 
           xmlns="http://schemas.datacontract.org/2004/07/DatasetServices.JobServices.DataContracts">
        <ProblemType>
           <DateAdded>2011-08-10T11:19:35.187</DateAdded>
                 <EmailTemplate>testing email template</EmailTemplate>
           <ProblemDescription>No Money</ProblemDescription>
           <ProblemTypeId>4</ProblemTypeId>
           <SendEmail>true</SendEmail>
        </ProblemType>
        </ArrayOfProblemType>'
我没有收到任何错误,但我也没有收到任何数据

我已经查看了所有提示给我的答案,但似乎没有一个在xml中包含xmlns名称空间。我想我需要以某种方式移除这个。以前有没有人遇到过这样的情况,可以帮上忙

谢谢 保罗

你需要使用


您不尊重XML名称空间-您需要这样做

试试这个:

;WITH XMLNAMESPACES('http://schemas.datacontract.org/2004/07/DatasetServices.JobServices.DataContracts' AS ns)
SELECT 
    ProblemData.Probs.value('(ns:ProblemTypeId)[1]', 'int') as 'ID',   
    ProblemData.Probs.value('(ns:DateAdded)[1]', 'Varchar(50)') as 'DateAdded'  
FROM  
    @XMLDoc.nodes('/ns:ArrayOfProblemType/ns:ProblemType') as ProblemData(Probs)
;WITH XMLNAMESPACES (default 'http://schemas.datacontract.org/2004/07/DatasetServices.JobServices.DataContracts')
SELECT ProblemData.Probs.value('(ProblemTypeId)[1]', 'int') as 'ID',   
       ProblemData.Probs.value('(DateAdded)[1]', 'Varchar(50)') as 'DateAdded'  
FROM  @XMLDoc.nodes('/ArrayOfProblemType/ProblemType') as ProblemData(Probs)
;WITH XMLNAMESPACES('http://schemas.datacontract.org/2004/07/DatasetServices.JobServices.DataContracts' AS ns)
SELECT 
    ProblemData.Probs.value('(ns:ProblemTypeId)[1]', 'int') as 'ID',   
    ProblemData.Probs.value('(ns:DateAdded)[1]', 'Varchar(50)') as 'DateAdded'  
FROM  
    @XMLDoc.nodes('/ns:ArrayOfProblemType/ns:ProblemType') as ProblemData(Probs)