sql - XML AUTO 查询以 90 或更高的兼容模式返回派生表引用
问题描述
我目前正在执行从 2005 年到 2012 年的 SQL 服务器迁移。作为第一步,我生成了 DMA 报告并观察到大多数使用 XML Auto 的过程都是该报告的一部分。
MSDN提供以下信息:
当数据库兼容级别设置为 90 或更高时,在 AUTO 模式下执行的 FOR XML 查询返回对派生表别名的引用。当兼容性级别设置为 80 时,FOR XML AUTO 查询返回对定义派生表的基表的引用。
考虑以下查询,输出将在 2005 年和 2012 年(及更高版本)中有所不同
SELECT * FROM (SELECT a.id AS a, b.id AS b
FROM Test a
JOIN Test b ON a.id=b.id) AS DerivedTest
FOR XML AUTO;
2005 年:<a a="1"><b b="1"/></a><a a="2"><b b="2"/></a>
2012 年:<DerivedTest a="1" b="1"/><DerivedTest a="2" b="2"/>
现在的问题是,2005 和 2012 版本都给了我相同的输出
<DerivedTest a="1" b="1"/><DerivedTest a="2" b="2"/>
需要您的帮助来确认是否需要修复受影响的 Tsql 对象。
解决方案
推荐阅读
- http - Flutter:在 null 上调用了 getter“主机”
- html - ionic 3中使用grid和flex的布局
- python - plt.hist 最大 bin 索引与绘图不同
- c# - 未调用非静态天蓝色函数
- java - java - 如何使用restful jersey实现从Java中现有的Web服务类调用另一个类
- php - 有没有办法在许多页面 php 中显示徽标?
- ios - iOS App 如何提交 Google OAuth 验证以使用 Google 日历
- angular - httpClient.get 升级到 Angular 8 后不调用服务器
- selenium - WebDriverWait 抛出 Timeout 而不是 NoSuch ElementException
- c# - 使用ffmpeg并排放置两个视频并将其下载为一个文件