在SqlServer中有如下代码

declare @ss int
set @ss=1
select myfile=@ss

转到达梦后代码可能就会变成

declare 
  ss int;
begin
  ss:=1;
  select ss as myfile; 
end

 

代码的阅读习惯已大变,如果我们习习惯了SqlServer的@作变量,setselect 赋值,以及别名=字段等时,我们试着改成

declare 
  @ss int;
begin
  set @ss=1;
  select myfile=@ss; 
end

 执行时会报错

这时我们可以设置实例兼容SqlServer

打开DM控制台工具

 修改如上图:服务器配置->实例配置->具体实例->兼容性相关参数中的MS_PARSE_PERMIT=3 与COMPATIBLE_MODE=2

 

MS_PARSE_PERMIT:是否支持MS SQLSERVER的语法。0:不支持;1:支持。2:在MS_PARSE_PERMIT =1的基础上,兼容MS SQLSERVER的查询项中支持“标识符=列名”或“@变量名=列名”用法。当COMPATIBLE_MODE=3时,MS_PARSE_PERMIT的实际值为1

COMPATIBLE_MODE:是否兼容其他数据库模式。0:不兼容,1:兼容SQL92标准,2:兼容ORACLE,3:兼容MS SQL SERVER,4:兼容MYSQL,5:兼容DM6,6:部分兼容TERADATA 

重启实例服务

再执行上在的代码

 

如果你对达梦的Sql语句熟悉了,最好还是不要用兼容模式了!

 

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐