我有一个问题,我已经知道没有漂亮的答案。
我有一个第三方应用程序,我无法更改。该应用程序的数据库已从MS Access转换为SQL Server 2012。程序连接ODBC,不关心后端。它发送的SQL非常简单,似乎在SQL Server上也能很好地工作。
然而,有一个表格的名称为“PLAN”,我已经知道这是SQL Server关键字。
我知道通常您会使用方括号访问这样的表格,但由于我不能更改SQL,所以我想知道是否有任何“丑陋”的方法可以覆盖关键字或即时转换SQL。
我有一个问题,我已经知道没有漂亮的答案。
我有一个第三方应用程序,我无法更改。该应用程序的数据库已从MS Access转换为SQL Server 2012。程序连接ODBC,不关心后端。它发送的SQL非常简单,似乎在SQL Server上也能很好地工作。
然而,有一个表格的名称为“PLAN”,我已经知道这是SQL Server关键字。
我知道通常您会使用方括号访问这样的表格,但由于我不能更改SQL,所以我想知道是否有任何“丑陋”的方法可以覆盖关键字或即时转换SQL。
我很抱歉,我认为你已经陷入了困境。我能提供的唯一建议是:
在 SQL Server 接收到网络数据包之前拦截它,这显然相当复杂。请参见 https://reverseengineering.stackexchange.com/questions/1617/server-side-query-interception-with-ms-sql-server,特别是答案 https://reverseengineering.stackexchange.com/a/1816
反编译程序以进行更改,例如 Java 或 .Net 应用程序。
我怀疑你的情况很糟糕。你可以
将第三方应用程序连接到使用链接表的Shim MS Access数据库,其中Access表只是底层SQL Server表的一个通行证。您想要做的是:
dbo.[User]
。 - James A Mohler