You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行OrderDetails建表SQL报错:'CONSTRAINT'关键字附近语法错误

错误原因

报错由两个问题共同触发:

  • Discount字段的decimal类型未指定精度、小数位数。在SQL Server 2005及更早版本、老版本Access等环境中,解析器默认decimal关键字后必须跟随括号填写精度参数,会持续向后读取内容尝试匹配括号,无法判定当前字段定义已结束
  • 低版本数据库不支持表定义列表的尾随逗号语法,字段解析逻辑异常时,读到后续CONSTRAINT关键字就会直接抛出语法错误。
修复方法
  1. 为decimal类型明确指定匹配业务的精度和小数位数,折扣场景通用配置为decimal(4,2),支持0.00~99.99的取值范围,完全满足业务需求
  2. 保留最后一个字段和主键约束之间的半角逗号(符合标准SQL的表元素分隔规则),不要额外添加无意义的尾随逗号

修正后可正常执行的建表代码:

Create Table OrderDetails
(
    OrderID smallint,
    ProductID smallint,
    UnitPrice money,
    Quantity smallint,
    Discount decimal(4,2),
    CONSTRAINT OrderDetails_OID_PID_pk PRIMARY KEY (OrderID, ProductID)
);

内容的提问来源于stack exchange,提问作者sid keshwani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 10:36:24