在SqlServer中有如下代码
declare @ss int
set @ss=1
select myfile=@ss
转到达梦后代码可能就会变成
declare
ss int;
begin
ss:=1;
select ss as myfile;
end
代码的阅读习惯已大变,如果我们习习惯了SqlServer的@作变量,set 或select 赋值,以及别名=字段等时,我们试着改成
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语句熟悉了,最好还是不要用兼容模式了!