gpt4 book ai didi

SQL 服务器 : trigger on Insert alter input

转载 作者:搜寻专家 更新时间:2023-10-30 23:39:03 24 4
gpt4 key购买 nike

我是 SQL Server 的新手,我正在努力创建一个触发器来满足我的需要。

我们有一个表,在插入记录之前我们想要操作输入值。

示例表:

MyTable 
(
[RUID] INT IDENTITY(1,1),
[CustomerName] nvarchar(200),
[CustomerStatus] INT,
[CustomerType] char(1),
[OtherFields] nvarchar(100)
)

插入可能会像这样:

INSERT INTO MyTable ([CustomerName], [CustomerStatus], [CustomerType], [OtherFields]) 
VALUES ('LName~FName', 2, 'A', 'Other Info')

我们无法控制执行插入的源系统(供应商产品将在几年内淘汰,因此管理层不想花钱让他们改变它)但我们需要这样的事情发生。

插入的

CustomerStatus 是插入值的 2 倍

CustomerType - 无论发送的值是什么,我们都希望被值“B”覆盖

所有其他列保持原样。

因此,在上面的示例中发送带有值的插入,我们实际上希望它最终出现在表中:

'LName~FName', 4, 'B', 'Other Info'

如果您能提供任何帮助,我们将不胜感激。

规范:

  • SQL Server 2008 R2 标准版(虽然数据库处于 SQL Server 2000 兼容模式)

最佳答案

您基本上需要一个 Instead of 触发器。代码看起来像...

CREATE TRIGGER tr_Insert_MyTable
ON MyTable
INSTEAD OF INSERT
AS
BEGIN
SET NOCOUNT ON;

INSERT INTO MyTable ([CustomerName], [CustomerStatus], [CustomerType], [OtherFields])
SELECT [CustomerName]
, [CustomerStatus] * 2 AS [CustomerStatus]
,'B' [CustomerType]
, [OtherFields]
FROM inserted


END

关于SQL 服务器 : trigger on Insert alter input,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37472209/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com