2016-08-09 145 views
0

Wenn ich versuche, die dynamisch erzeugten XML-Daten in eine temporäre Tabelle ein Fehler seine ShowsOperandtyp Zusammenstoß: Bild ist nicht kompatibel mit xml

einfügen „Operandtyp Zusammenstoß: Bild ist nicht kompatibel mit xml“.

Ich habe bereits die Abfrage geteilt, wenn ich die Abfrage ausführen und nur die XML-Funktion auswählen. Das einzige Problem ist, dass es nicht erlaubt ist, in eine Tabelle einzufügen.

"SET @sSQL1 = ' 
    SELECT ' + @ColumnList + ' 
    FROM TB1 IPI WHERE TBID= ' + CAST(@ID as varchar(10)) +' FOR XML RAW (''TB'') ,ROOT(''Table'') ' 

INSERT INTO @TBLTRANSXML(INCTRANSXML)   
EXEC (@sSQL1)" 
+1

Zum einen bedeutet das, dass Sie nicht auf eine Warnung geachtet haben, die Microsoft seit mehr als einem Jahrzehnt herausgibt: [ntext, text and image] (https://msdn.microsoft.com/en -gb/library/ms187993.aspx): Die Datentypen "** ntext **, ** text **" und "image **" werden in einer zukünftigen Version von SQL Server entfernt. Vermeiden Sie die Verwendung dieser Datentypen in der Neuentwicklung arbeiten und planen, Anwendungen zu ändern, die sie derzeit verwenden " –

+1

Bitte lesen [diese Community Diskussion] (http://meta.stackoverflow.com/q/326569/472495) über dringende betteln, und lassen Sie mich wissen, was Sie davon halten . Ping mich mit '@ Halfer', danke. – halfer

+0

@Damien_The_Unbeliever in dieser Tabelle gibt es kein Bild oder Ntext oder Textfeld – shyam

Antwort

0

Ich habe diese

"SET @sSQL1 = 'select (
SELECT ' + @ColumnList + ' 
FROM TB1 IPI WHERE TBID= ' + CAST(@ID as varchar(10)) +' FOR XML RAW (''TB'') ,ROOT(''Table'')) ' 

INSERT INTO @TBLTRANSXML(INCTRANSXML)   
EXEC (@sSQL1)" 

eine Auswahl vor Hinzufügen wird das Problem lösen.