2012-02-06 135 views
1

我想這個XML數據插入到SQL Server 2008中XML到SQL Server插入

<rewriteMap name="OldStaticUrl"> 
    <add key="/about/" value="/about" /> 
    <add key="/2march2012" value="/community/0770/welcome-to-electronic-musicians-march-2012-links-page/147452" /> 
</rewriteMap> 

我使用這個SQL查詢

DECLARE @hdoc INT 
DECLARE @doc varchar(1000) 

SET @doc = '<rewriteMap name="OldStaticUrl"> 
       <add key="/about/" value="/about" /> 
       <add key="/2march2012" value="/community/0770/welcome-to-electronic-musicians-march-2012-links-page/147452" /> 
      </rewriteMap>' 

EXEC sp_xml_preparedocument @hdoc OUTPUT, @doc 

SELECT vanity, originalurl 
    FROM Openxml(@hdoc, '/rewriteMap/add',1) 
    WITH (vanity varchar(1000), originalurl varchar(1000)) 

但我在結果集中越來越空,在事實上,如果我使用select * from openxml,我會得到多行,其中一些包含正確的數據。

回答

3

而不是vanityoriginalurl文字你應該分別使用keyvalue
試試此問題:

DECLARE @hdoc INT 
DECLARE @doc varchar(1000) 
SET @doc = '<rewriteMap name="OldStaticUrl"> 
       <add key="/about/" value="/about" /> 
       <add key="/2march2012" value="/community/0770/welcome-to-electronic-musicians-march-2012-links-page/147452" /> 
      </rewriteMap>' 
EXEC sp_xml_preparedocument @hdoc OUTPUT, @doc 
SELECT [key], value 
FROM Openxml(@hdoc, '/rewriteMap/add', 1) WITH ([key] varchar(1000), value varchar(1000)) 
+0

thanks that helps – Abbas 2012-02-06 20:46:53