每个表都有一列RECNUM。它们是(十进制(28,0),而不是null)。这就是我加入的地方。我想在CAUNIT中选择列DESC。它是(varchar(28,0),而不是null)。当我运行我的查询时,我得到:
第15行,第1行,第1行,第1行 关键字“DESC”附近的语法不正确。以下是我的询问:
SELECT CDCLSVC.UNIT_ID,CAUNIT.DESC
FROM CDCLSVC
LEFT JOIN CAUNIT
ON CDCLSVC.RECNUM = CAUNIT.RECNUM
答案 0 :(得分:3)
问题在于DESC
列。在SQL Server
中,它是reserved keyword:
Microsoft SQL Server使用保留关键字进行定义, 操纵和访问数据库。保留关键字是其中一部分 SQL Server使用的Transact-SQL语言的语法 解析并理解Transact-SQL语句和批处理。 虽然如此 在语法上可以使用SQL Server保留关键字作为 Transact-SQL脚本中的标识符和对象名称,您可以执行此操作 只能使用分隔标识符。
可能的解决方案:
description
[]
您还可以使用别名来避免输入完整的表名:
SELECT cd.UNIT_ID,ca.[DESC]
FROM CDCLSVC cd
LEFT JOIN CAUNIT ca
ON cd.RECNUM = ca.RECNUM