Yerf!
Ich steh grad vor nem Problem und weis nicht, wie ich das am einfchsten lösen kann.
Ich hab einen MS SQL 2003 Server in den ich ein XML importieren will. Das ganze läuft über eine Stored Procedure. Leider bekomm ich dabei einen Fehler (es wird versucht Null einzutragen, wo keines erlaubt ist). Nur wie finde ich jetzt innerhalb meiner XML (ca. 28MB) den fehlerhaften Datensatz?
Mit dem Editor war ich bisher auch nicht erfolgreich, ein leeres Element ist es jedenfalls nicht...
Gibts eine Möglichkeit das mitprotokolieren zu lassen oder den Fehler abzufangen und dann die Werte die versucht werden einzutragen auszugeben? Momentan setz ich das Statement über das management Studio ab.
Der betreffende teil aus der Procedure (da sind dann noch mehr statemnts drin, aber der schlägt fehl, weil bei ID null eingetragen werden soll.
INSERT INTO dbo.IDProducer
(ID, OnBehalfOf, ProducedDate)
SELECT ID = M.Item.value('(ID/text())[1]', 'int'),
OnBehalfOf = M.Item.value('(ID/text())[1]', 'int'),
ProducedDate = '21.02.2011'
FROM @ImportData.nodes('Measures/Measure') AS M(Item);
Wie kann ich da mitbekommen wo der Fehler ist? Ideal wäre eine Auflistung aller Einträge die vorher abgearbeitet werden sollen.
Ich hab jetzt mal die Transaction um das Statement auskommentiert, damit kein Rollback stattfindet. Leider ist die tabelle danach trotzdem leer, ich seh also nicht, wie weit er gekommen ist, biss der Bull auftrat...
Wie find ich den blöden Wert?
Gruß,
Harlequin
RIP --- XHTML 2
nur die Besten sterben jung