在SQL Server中存储XML而不是在varchar字段中存储JSON有什么好处?
有效如何有效使用XML数据类型的教程?
我是否需要以某种方式提供dtd / xml架构?我听说它是可选的,对吗?
谢谢。
更新:这是Q的最后一部分的答案。
使用XML架构信息 存储和查询优化。类型化 XML实例包含类型值 内部的二进制表示为 以及XML索引。这提供了 高效处理类型化XML 数据
引自:http://msdn.microsoft.com/en-us/library/ms345117(SQL.90).aspx
答案 0 :(得分:6)
SQL Server 2005及更高版本中的XML允许您使用XQuery直接操作存储在数据库表中的XML - 您无法在VARCHAR字段中使用JSON实现这一点。
查看XML Support in Microsoft SQL Server 2005和Fundamentals of the XML Datatype in SQL Server 2005了解更多信息和更多背景信息。
此外,存储在SQL Server的XML列中的XML是“标记化的”并经过预解析 - 它不仅仅存储为纯文本。而且你甚至可以在你的XML上放置索引 - 在它的节点上,它的值 - 无论你需要什么。
答案 1 :(得分:5)
将其存储为XML允许您利用SQL XML支持:XPATH,XQUERY,XML索引等。这些允许有效搜索和操纵内容。我建议你阅读XML Best Practices for Microsoft SQL Server 2005
VARCHAR中的JSON内容对搜索和操作不透明。
答案 2 :(得分:2)
以上都不适用于存储在varchar中的JSON。
答案 3 :(得分:1)
如果使用xml数据类型,则可以查询单个xml属性值。我不相信json可以使用相同的功能:
http://msdn.microsoft.com/en-us/library/ms191474.aspx
我不相信xsd是必需的,因为我使用了查询功能而没有在之前定义
答案 4 :(得分:1)
在SQL 2005中存储XML非常棒。您可以将整个XML文件放在单个字段中,然后运行SELECT命令以提取某些属性和元素。放置XSD不是必需的。即使在2008年,我也不相信它有任何JSON支持。 Here's a good starter article就可以了。