सबसे पहले मैं कोशिश करूँगा text()
. निर्दिष्ट करें SQL सर्वर को टेक्स्ट तत्वों की गहन खोज करने से रोकने के लिए XML डेटाटाइप का उपयोग करते समय नोड।
INSERT INTO SUPPLIER
(IDCONO
,IDSUNO
,IDSUTY)
SELECT
T.C.value('(IDCONO/text())[1]', 'VARCHAR(50)') as IDCONO,
T.C.value('(IDSUNO/text())[1]', 'VARCHAR(50)') as IDSUNO,
T.C.value('(IDSUTY/text())[1]', 'VARCHAR(50)') as IDSUTY
FROM @data.nodes('/Suppliers/Supplier') T(C)
यदि यह पर्याप्त नहीं है तो मैं इसके बजाय OPENXML आज़माउंगा।
DECLARE @idoc INT
EXEC sp_xml_preparedocument @idoc OUT, @data
INSERT INTO SUPPLIER
(IDCONO
,IDSUNO
,IDSUTY)
SELECT IDCONO, IDSUNO, IDSUTY
FROM OPENXML(@idoc, '/Suppliers/Supplier', 2) WITH
(IDCONO VARCHAR(50),
IDSUNO VARCHAR(50),
IDSUTY VARCHAR(50))
EXEC sp_xml_removedocument @idoc