sql - 在 SQL Server 中创建 XML 时,如何将值包装在 CDATA 标记中?

标签 sql sql-server sql-server-2008 t-sql

如何将 OldValue 包装在 CDATA 中?

SELECT
1 AS Tag,
0 AS Parent,
(
    SELECT PositionDescription AS 'data()'
     FROM dbo.Project where ID = 32
     FOR XML PATH('')
) AS 'PositionDescription!1!OldValue!CDATA'
FOR XML EXPLICIT, TYPE 

最佳答案

只需删除 TYPE 关键字即可。并在子查询中使用原始字符串而不是 XML

SELECT
1 AS Tag,
0 AS Parent,
(
    SELECT PositionDescription
      FROM dbo.Project where ID = 32
) AS [PositionDescription!1!OldValue!CDATA]
FOR XML EXPLICIT

示例和输出

create table Project (PositionDescription varchar(100), id int)
insert project select 'abc<test>', 32
---

<PositionDescription>
  <OldValue><![CDATA[abc<test>]]></OldValue>
</PositionDescription>

关于sql - 在 SQL Server 中创建 XML 时,如何将值包装在 CDATA 标记中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12483786/

相关文章:

mysql - SQL-DBDL 如何约束父类(super class)参与子类?

c# - Dapper:帮助我运行具有多个用户定义的表类型的存储过程

sql-server - 使用用户定义的表类型需要什么权限

sql-server - SQL Server需要对数据进行分区,但只有标准版

c# - 保留从 TextBox 到 SQL Server 的数据换行符

java - Hibernate - 使用一个 hibernate 映射查询多个表

sql - 使用 BIT 数据类型过滤 WHERE 子句中的查询

SQL Server 只允许每个用户一个事件图像

c# - 显示 SQL Server 存储过程的单个返回值的函数

sql-server-2008 - 如果一条记录包含 NULL,则排除特定 ID 的所有记录