我们的数据库位于SQL Server 2000上。我们正在迁移到SQL Server 2008 R2。在服务器上执行之前处理SQL语句
我们要更新的兼容级别为100
但连接操作*=
和=*
没有更多与兼容级别的支持。
建议的解决方案是更新我们的源代码并将操作员更改为OUTER JOIN
。
但是我们不能承受千exe和dll的修改。所以我们无法更新我们的源代码;有太多的项目。
我的问题是:
有没有在SQL Server 2008 R2的任何系统,这将让我:
- 捕获的SQL语句是执行
- 更新语句(如更换前
*=
byLEFT OUTER JOIN
) - 将修改后的语句返回给SQL Server引擎执行
这种方法将允许我们设置兼容级别设置为100,即使我们的方案仍然使用旧的语法
感谢
(附:这个问题一直是横贴在dba.stackexchange)
即使这种伎俩是可能的,我绝对建议不要这样做!我向你保证,这是一个可怕的方法,从长远来看不会有帮助。 – jazzytomato 2014-12-05 16:43:27
我知道这一点。如果技巧存在,我们只会将它用于旧项目。不是新的。 – podosta 2014-12-05 16:45:47
'建议的解决方案是更新我们的源代码并将操作员更改为OUTER JOINS' - 听起来像是很好的建议。它可能比尝试去做你所要求的更快,更不容易出错。 – Donal 2014-12-05 16:57:11