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

如何在SQL Server中创建触发器实现指定字段开头文本缩写更新?

需求可实现,附SQL Server触发器实现方案

这个需求完全可以实现,以下是具体的触发器代码及说明:

CREATE TRIGGER trg_UpdateStepDescription
ON YourTableName -- 替换为实际表名
AFTER INSERT
AS
BEGIN
    SET NOCOUNT ON;

    -- 更新符合条件的记录:替换开头的TOMOGRAFIA为T.C
    UPDATE target
    SET target.no_stepdescription = 'T.C ' + SUBSTRING(source.no_stepdescription, LEN('TOMOGRAFIA') + 1, LEN(source.no_stepdescription))
    FROM YourTableName target
    INNER JOIN inserted source 
        ON target.YourPrimaryKey = source.YourPrimaryKey -- 替换为表的主键/唯一标识列
    WHERE LEFT(source.no_stepdescription, LEN('TOMOGRAFIA')) = 'TOMOGRAFIA';
END;

关键逻辑说明

  • 使用AFTER INSERT触发器,保证插入操作完成后再执行替换逻辑
  • 通过inserted系统表获取刚插入的记录,与原表关联定位到需要更新的行
  • 用LEFT函数精准判断字段开头是否为TOMOGRAFIA,避免替换中间出现的该字符串
  • 用SUBSTRING截取TOMOGRAFIA之后的内容,拼接T.C 完成缩写替换
  • SET NOCOUNT ON用于屏蔽触发器执行时的行数返回信息,避免干扰业务调用

注意事项

  • 必须将代码中的YourTableName替换为实际存储流程描述的表名
  • 将YourPrimaryKey替换为表的主键(或唯一索引列),确保能准确匹配插入的行
  • 如果字段存在前导空格需求,可在判断前添加LTRIM处理,例如:LEFT(LTRIM(source.no_stepdescription), LEN('TOMOGRAFIA')) = 'TOMOGRAFIA'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 11:43:11