在新版本的SQL Server上测试脚本是否与旧版本兼容,是否可能?
是否有办法告诉服务器不要理解所有新功能(新函数名称、新语法糖等)?
这样我们就可以省去VM托管旧的SQL Server版本,并释放我们测试环境VM主机上宝贵的资源。
在新版本的SQL Server上测试脚本是否与旧版本兼容,是否可能?
是否有办法告诉服务器不要理解所有新功能(新函数名称、新语法糖等)?
这样我们就可以省去VM托管旧的SQL Server版本,并释放我们测试环境VM主机上宝贵的资源。
不必保留旧的服务器版本,你可以在主(当前)服务器上创建一个用于测试的数据库,然后将该数据库的兼容性设置为较低的版本。
ALTER DATABASE database_name
SET COMPATIBILITY_LEVEL = 100 -- 100 = Engine v10.x = SQL 2008
可能更简单的方法是将较低级别的数据库从旧服务器分离,将相关文件(MDF+LDF)复制到新服务器,然后在新服务器上附加它。这样做通常不会更改兼容性级别,除非它是一个过时的级别,新服务器不再支持。
ALTER DATABASE CURRENT SET RECOVERY SIMPLE
这一行会抛出语法错误("Syntax error at or near CURRENT"),但是在兼容的数据库上却可以正常工作。 - undefinedEXEC ('ALTER DATABASE ' + @dbName + ' SET RECOVERY SIMPLE')
在这种情况下可能有效。 - undefinedCURRENT
来表示当前数据库,只需使用ALTER DATABASE SET RECOVERY SIMPLE
即可。 - undefined