我正在使用 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,但是到发生这种情况时会不会太晚了?如果有人可以就我应该如何处理这个问题提出一些建议,我将不胜感激。非常感谢。