如何在新版Dynamics 365 FO中通过SQL/X++获取数据库版本
获取Microsoft Dynamics 365 Finance and Operations数据库版本的替代方法
SQL查询方法
- 直接查询系统版本表(适用多数新版本)
SELECT ReleaseVersion, BuildNumber FROM dbo.SYSTEMRELEASEVERSION - 兼容多架构场景(如版本40存在ax和dbo双架构)
-- 优先检查ax架构 IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'ax' AND TABLE_NAME = 'SYSTEMRELEASEVERSION') BEGIN SELECT ReleaseVersion, BuildNumber FROM ax.SYSTEMRELEASEVERSION END -- 再检查dbo架构 ELSE IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = 'SYSTEMRELEASEVERSION') BEGIN SELECT ReleaseVersion, BuildNumber FROM dbo.SYSTEMRELEASEVERSION END - 另一种方式:查询环境元数据表获取版本信息
SELECT EnvironmentVersion FROM dbo.MSENVIRONMENTMETADATA
X++代码方法
- 获取应用版本号
str applicationVersion = ApplicationVersion::getApplicationVersion(); info(strFmt("Application Version: %1", applicationVersion)); - 获取构建版本与内核版本
BuildVersion buildInfo = BuildVersion::buildVersion(); info(strFmt("Build Number: %1", buildInfo.buildNumber())); info(strFmt("Kernel Version: %1", buildInfo.kernelVersion()));
注意事项
- 版本43及以上的D365 FO仅使用dbo架构,无需检查ax架构;版本40需兼容双架构查询逻辑。
- 部分环境中
MSDYN_DATABASEVERSION表可能仍存在,可先尝试查询验证:SELECT * FROM dbo.MSDYN_DATABASEVERSION
内容的提问来源于stack exchange,提问作者RSD
相关产品推荐
相关产品推荐

