2

我正在协助我的一位同事无法让我们的应用程序正常工作。我发现他使用的是 SQL Server 2012,错误归结为应用程序运行以下 SQL 查询:

SELECT 
    SMS_INSTITUTIONS.SMS_INSTITUTION_NR, 
    SMS_INSTITUTIONS.ID, 
    SMS_INSTITUTIONS.NAME, 
    SMS_INSTITUTIONS.EXTERNAL 
FROM 
    SMS_INSTITUTIONS 

所以我通过使用 Management Studio 在 SQL Server 2008 中运行此查询来测试它,它运行良好。但是,在使用 Management Studio 2012 在 SQL Server 2012 中运行相同数据库测试这个完全相同的查询时,我得到了

消息 156,级别 15,状态 1,第 2 行
关键字“EXTERNAL”附近的语法不正确。

当我们将 [] 放在保留字周围时,我们发现它可以工作,EXTERNAL然后查询可以与 SQL Server 2012 数据库一起工作。

SELECT 
    SMS_INSTITUTIONS.SMS_INSTITUTION_NR, 
    SMS_INSTITUTIONS.ID, 
    SMS_INSTITUTIONS.NAME, 
    SMS_INSTITUTIONS.[EXTERNAL] 
FROM 
    SMS_INSTITUTIONS 

您知道这是对 SQL Server 2012 的新限制还是我需要启用的设置?我用谷歌搜索,但到目前为止没有任何直接的解释。

在此处输入图像描述

4

1 回答 1

3

EXTERNAL自 SQL Server 2005以来一直是保留关键字。

我唯一的想法是你会在80(SQL Server 2000)兼容模式下运行你的 2008 数据库。SQL Server 2012不再支持该模式。

于 2013-11-06T19:07:10.940 回答