虽然 SQL Server 和达梦数据库都 100% 遵循 SQL-92 规范,但是 SQL Server T-SQL 和 达梦 DM-SQL 都有自己的编程特色,这些特色尤其表现在对数据集的处理和函数的多样性上。
例如,SQL Server 可以创建局部临时表,并且临时表是 SESSION 安全的,同时也可以创建全局临时表,但是在 SQL Server 中,全局临时表是 SESSION 不安全的,即数据是可以共享的;DM8 只可以创建全局临时表,同时全局临时表也是 SESSION 安全的。因为,在 SQL Server 的 SQL 文件中大量的使用了临时表的方式,对数据集进行增删改查,而 DM8 不能创建局部临时表的问题,在很大程度上阻碍了 SQL 的翻译工作。经过我们深入的分析和尝试,最终使用 DM8 的嵌套表,把 SQL Server 中对临时表的增、删、改的操作全部转换为对嵌套表的 “增” 操作,解决了这个难题。