-1
我有一个表Campaign
与列CampaignXml
加上其他列。在CampaignXml
,我保存问题。我需要一个查询来获得所有CampaignXml
列中的问题数量。我需要查询以获得有关XML的数据计数
我写了一个存储过程使用top 1 CampaignXML
从Campaign
表,但我想看看表中的所有CampaignXml
并得到问题计数。
ALTER PROCEDURE [dbo].[GetPanelsitCount]
AS
DECLARE @CampaignXML NVARCHAR(MAX)
DECLARE @idoc INT
DECLARE @Marketid INT
SELECT DISTINCT TOP 1 @CampaignXML = CampaignXML, @marketid = marketid
FROM dbo.Campaign
WHERE campaigntypeid = 8
AND CampaignXML IS NOT NULL
AND statusid = 57
AND marketid = 24
EXEC sp_xml_preparedocument @idoc OUTPUT
,@CampaignXML
(SELECT ID INTO #tblQuestionId FROM OPENXML(@idoc, 'XmlCampiagn/Pages/Page[1]/Questions/Question') WITH (ID INT '@ID'))
-- select * from #tblQuestionId
示例XML:
<XmlCampiagn Name='My Campaign' ID='4'>
<GlobalSetting Name='Global Setting'>
<MobileNumberVerification Enabled='False' Mandatory='False' Required='False'></MobileNumberVerification>
<XGEOTargeting Enabled='False'></XGEOTargeting>
<Captcha Enabled='False'></Captcha>
</GlobalSetting>
<Pages>
<Page ID= '1' Name='Default' PageType='Default' Mode='0'>
<PipingLogics></PipingLogics>
<Questions>
<Question MaxLength='' Validation='' ID='6448'
Mandatory='True' Required='False' IsNonEditable='False'/>
</Questions>
<Logics></Logics>
<MaskingLogics></MaskingLogics>
</Page>
</Pages>
</XmlCampiagn>
感谢,但我得到error..Cannot既找不到列“CampaignXML”或用户定义的函数或聚合“CampaignXML.value”,或名称不明确。 –
@ M.Hasan:那么,**数据类型**是您的“CampaignXml”列?既然你说它存储XML,我认为它是'XML'数据类型 - 如果不是,那么'.value()'是不可能的,当然..... –
它的nvarchar数据类型 –