У меня столбец xml в таблице. Когда я вставляю xml в таблицу, все символы в xml являются нормальными. Но когда я пытаюсь вставить узел в xml с помощью оператора Xml DML, если этот узел имеет такие символы, как «Delta», SqlServer преобразует их в знак вопроса. Может ли кто-нибудь предложить, как решить эту проблему?XML DML-заявление SqlServer преобразует символ Delta в знак вопроса
Вот пример кода:
- 1. Создание таблицы
CREATE TABLE SAMPLE_XML (ID INT IDENTITY, информация XML);
- 2. Создайте хранимую процедуру для вставки данных в таблицу.
CREATE PROCEDURE [dbo].[SET_SAMPLEXML]
@Information xml
AS
BEGIN
INSERT INTO SAMPLE_XML
(Information)
VALUES
(@Information);
END
--3. execute stored procedure to insert data, delta symbol gets recognized
EXEC SET_SAMPLEXML
@Information = N' <tr>
<td>Δcardia info</td>
</tr>';
--4 Now, insert one more node with delta symbol. SqlServer converts it into ? mark.
UPDATE SAMPLE_XML
SET Information.modify('insert (<td>Δinput</td>) as first into (tr)[1]') WHERE
ID=1;
--5 The result of the select statement of the table. Please observe, newly inserted td tag has the delta symbol converted into ? mark.
<tr>
<td>?input</td>
<td>Δcardia info</td>
</tr>