SQL Server 常用命令:触发器、替换函数与日期转换
概述
整理 SQL Server 开发中常用的触发器编写、字符串替换和日期格式化命令,适合日常开发和快速参考。
一、触发器(Trigger)
当指定表的指定列发生 UPDATE 时自动执行:
-- 创建触发器
CREATE TRIGGER trg_update_contract
ON stock_move_line
AFTER UPDATE
AS
BEGIN
IF UPDATE(sale_order_line_id)
BEGIN
UPDATE stock_move_line
SET contract = (
SELECT origin FROM sale_order
WHERE ID = (
SELECT sale_order_id FROM sale_order_line
WHERE ID = inserted.sale_order_line_id
)
)
FROM inserted
WHERE stock_move_line.ID = inserted.ID
AND inserted.sale_order_line_id > 0
END
END关键概念:
inserted虚拟表:存放 UPDATE 后的新数据deleted虚拟表:存放 UPDATE 前的旧数据UPDATE(column)函数:检测指定列是否被修改
二、REPLACE 替换函数
-- 删除指定字符
SELECT REPLACE("你好啊", "啊", ""); -- 结果:你好
-- 替换字符
SELECT REPLACE("2024/05/16", "/", "-"); -- 结果:2024-05-16
-- 嵌套使用
SELECT REPLACE(REPLACE("A-B-C", "-", ""), " ", ""); -- 去掉横线和空格三、日期格式化 CONVERT
-- 格式码 11 → yy/mm/dd
SELECT CONVERT(nvarchar(80), GETDATE(), 11); -- 24/05/16
-- 格式码 23 → yyyy-mm-dd(ISO标准)
SELECT CONVERT(nvarchar(80), GETDATE(), 23); -- 2024-05-16
-- 格式码 112 → yyyymmdd
SELECT CONVERT(nvarchar(80), GETDATE(), 112); -- 20240516常用 CONVERT 格式码速查
| 格式码 | 输出格式 | 示例 |
|---|---|---|
| 11 | yy/mm/dd | 24/05/16 |
| 23 | yyyy-mm-dd | 2024-05-16 |
| 101 | mm/dd/yyyy | 05/16/2024 |
| 112 | yyyymmdd | 20240516 |
| 120 | yyyy-mm-dd hh:mi:ss | 2024-05-16 14:30:00 |
四、其他常用函数
-- 字符串截取
SELECT SUBSTRING("Hello World", 1, 5); -- Hello
-- 获取字符串长度
SELECT LEN("你好世界"); -- 4
-- NULL 值处理
SELECT ISNULL(字段名, "默认值");
-- 类型转换
SELECT CAST("123" AS INT);
SELECT CONVERT(INT, "123");
暂无评论
快来发表第一条评论吧!