Wie kann ich die 8000-charactergrenze von OpenXML überwinden?

Ich lade ein XML in SQL mit OpenXML bei der Deklaration der variables die max ich kann bis zu 8000 character:

DECLARE @xml_text varchar(8000) 

Da Text, ntext nicht erlaubt ist, mit openXML verwendet zu werden, welche anderen Alternativen muss ich das gesamte XML (über 20000 character) in SQL laden?

Sie sollten in der Lage sein, varchar (max) (SQL 2005 und höher)

 DECLARE @idoc int DECLARE @doc varchar(max) SET @doc = ' <myxml> <node nodeid="1" nodevalue="value 1"> </node> </myxml>' EXEC sp_xml_preparedocument @idoc OUTPUT, @doc SELECT * FROM OPENXML (@idoc, '/myxml/node',1) WITH ( nodeid varchar(10), nodevalue varchar(20) ) 

Wenn Sie SQL 2005 oder besser verwenden, können Sie den XML-datatyp selbst verwenden. Auf diese Weise können Sie OPENXML vermeiden:

 DECLARE @XDoc XML SET @XDoc = '<Customer> <FirstName>Fred</FirstName> <LastName>Flinstone</LastName> </Customer> <Customer> <FirstName>Barney</FirstName> <LastName>Rubble</LastName> </Customer>' SELECT Tbl.Col.value('FirstName[1]', 'VARCHAR(MAX)'), Tbl.Col.value('LastName[1]', 'VARCHAR(MAX)') FROM @XDoc.nodes('/Customer') Tbl(Col)