【发布时间】:2012-07-18 13:10:23
【问题描述】:
我正在使用 SQL SERVER 2008 R2。我有一个使用 FOR XML 将结果作为 XML 返回的存储过程。这是存储过程的样子:
CREATE PROCEDURE [dbo].[myproc]
(
@ID int,
)
AS
SET NOCOUNT ON
BEGIN
SELECT
t1.FirstField
t2.AnotherField
t1.ThirdField
FROM table t1
INNER JOIN table2 t2 ON t1.ID = t2.ID
WHERE t1.id = @ID FOR XML RAW ('project'), ELEMENTS;
END
这按预期工作并生成如下 XML:
<project>
<FirstField>First field data</FirstField>
<AnotherField> Another field data</AnotherField>
<ThirdField>Third field data</ThirdField>
</project>
这是我想要的。但是我担心的是,当 XML 中有特殊字符(例如 )时,这不会搞砸并导致 XML 格式错误吗?有没有办法解决这个问题?我可以在调用此存储过程的代码中进行一些检查,以查看它是否是有效的 XML,但到那时会不会太晚了?如果有人可以就我应该如何处理这个问题提出一些建议,我将不胜感激。非常感谢。
【问题讨论】:
-
您为什么不对其进行测试并将其中的一些数据放入您的表中? :) 此外,您可能想要的是查看 CDATA 标记。不知道您是否可以通过查询或其他方式添加它们..
标签: sql sql-server sql-server-2008 for-xml