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

如何创建触发器控制折扣金额输入不超过商品售价的20%?

触发器实现:控制折扣不超过商品售价的20%

要实现限制折扣金额不超过对应商品售价20%的校验逻辑,可以通过创建AFTER类型触发器,在插入或更新数据时自动检查规则,违反则抛出错误阻止操作。

示例实现代码

CREATE TRIGGER [dbo].[Control]
ON [dbo].[Ordered Goods]
AFTER INSERT, UPDATE
AS
BEGIN 
  SET NOCOUNT ON;

  -- 校验是否存在折扣超出售价20%的记录
  IF EXISTS (
    SELECT 1
    FROM Inserted I
    WHERE I.Discount > (0.20 * I.Priceproduct)
    ) BEGIN
    -- SQL Server 2012及以上版本推荐使用THROW替代RAISERROR,语法更简洁
    -- THROW 50001, '折扣金额不得超过商品售价的20%', 1;
    RAISERROR(N'折扣金额不得超过商品售价的20%', 16, 1);
  END;
END;

代码说明

  • 触发器绑定在[dbo].[Ordered Goods]表上,监听INSERT和UPDATE两种操作
  • 借助Inserted临时表获取新增或更新后的数据,判断Discount字段是否超出售价的20%阈值
  • 一旦检测到违规记录,通过错误提示阻断当前操作,确保数据合规

触发错误时的效果

触发器错误提示效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 06:01:17