Как я могу предотвратить использование тегов tsql?
Я не совсем уверен, что это то, что вы хотите. Но ...
Пример данных:
declare @T table
(
Col varchar(50)
)
insert into @T values ('<span>my field content 1</span>')
insert into @T values ('<span>my field content 2</span>')
Эквивалент вашего запроса к этой таблице:
select Col
from @T
for xml raw, elements, type
Результатом этого будет одна строка и один столбец, содержащий документ XML, который выглядит следующим образом:
<row>
<Col><span>my field content 1</span></Col>
</row>
<row>
<Col><span>my field content 2</span></Col>
</row>
Вот так может посмотреть, если вы хотите, чтобы <span>my field content 1</span>
было значением элемента col
.
То, что вы просите, может быть создано так:
select cast(Col as xml) as Col
from @T
for xml raw, elements, type
И это также вернет одну строку с одним столбцом XML, например:
<row>
<Col>
<span>my field content 1</span>
</Col>
</row>
<row>
<Col>
<span>my field content 2</span>
</Col>
</row>
Здесь у вас есть <span>my field content 1</span>
как дочерний узел до Col
, а не как значение.
Если у вас экранированный XML, вы получите правильные значения, когда извлечете их из XML. Примерно так в TSQL, но должно быть таким же на других языках.
declare @X xml
set @X =
'<row>
<Col><span>my field content 1</span></Col>
</row>
<row>
<Col><span>my field content 2</span></Col>
</row>'
select T.N.value('Col[1]', 'varchar(50)') as Col
from @X.nodes('/row') as T(N)
Результат:
Col
--------------------------------------------------
<span>my field content 1</span>
<span>my field content 2</span>