有一次在 SQLCE 3.5 SP2 中执行下列语句:
SELECT
Name =
case cap_type
when 'E' then given_name
else chinese_name end
FROM cap
WHERE cap_no = '1'
提示以下错误:
- 主要错误 0x80040E14,次要错误 25501
- 分析查询时出错。 [ Token line number = 2,Token line offset = 10,Token in error = = ]
后来发现是由于 SQL Server Compact 3.5 不支持带“=”的数据库对象名称的别名,只支持带“AS”的数据库对象名称的别名,将语句更改一下就能正常查询了:
SELECT
case cap_type
when 'E' then given_name
else chinese_name end as Name
FROM cap
WHERE cap_no = '1'
更多的可参考微软说明:
使用下表可确定与 SQL Server 相比,SQL Server Compact 3.5 支持哪些 Transact-SQL 命令、功能和数据类型。
Transact-SQL 命令、功能或数据类型 | SQL Server Compact 3.5 | SQL Server 2005 | SQL Server 2008 / R2 |
ALTER TABLE (SQL Server Compact) 中的 SET DEFAULT 选项。 | 支持 | 不支持 | 支持 |
聚合函数(例如,count(distinct))中的 DISTINCT。 | 不支持 | 支持 | 支持 |
HAVING 子句 (SQL Server Compact) 子句在聚合和分组查询中使用时可以包含复杂表达式。 | 仅限简单的列引用 | 支持 | 支持 |
TOP 子句中的 WITH TIES 和 PERCENT。 | 不支持 | 支持 |