Folgendes ist die Abfrage, die ich ausführe. Ich erhalte XML-Eingabe von C# in @ XMLdata Parameter.XML-Fehler in SQL-Server
CREATE TABLE #TablesList
(
TableName VARCHAR(500),
RefTable VARCHAR(500),
RefTableIDColumn VARCHAR(500)
)
SET @Query = @Query + ' INSERT INTO #TablesList SELECT ref.value(''tablename[1]'',''nvarchar(500)'') AS tablename,'
SET @Query = @Query + ' ref.value(''refTable[1]'',''nvarchar(500)'') AS refTable, ref.value(''refTableIDColumn[1]'',''nvarchar(500)'') AS refTableIDColumn FROM '
SET @Query = @Query + @XMLdata+'.nodes(''//Table[@name="'[email protected]+'"]'') AS R(ref)'
EXEC(@Query)
Wenn ich die Abfrage ausführen, erhalte ich den folgenden Fehler. Fehler ist für die 2. letzte Zeile
The data types varchar(max) and xml are incompatible in the add operator.
Was die Datentypen von '@ Query' und' @ XMLdata' sind? – Adwaenyth
varchar (max) und XML bzw. – user2998990
Dann wird es nicht funktionieren, weil Sie versuchen, einen XML-Datentyp implizit in ein Varchar zu konvertieren, das nicht definiert ist. Wenn Sie in der konstruierten Abfrage auf den XML-Code als XML-Datentyp zugreifen müssen, müssen Sie ihn übergeben, auswählen oder anderweitig in der Abfrage erstellen, die Sie erstellen möchten. – Adwaenyth