gpt4 book ai didi

sql - 当插入事件发生时,我可以将列值更新到触发器中吗?

转载 作者:行者123 更新时间:2023-12-04 19:14:43 28 4
gpt4 key购买 nike

我正在使用 SQL Server 2008。我可以更新发生插入触发器的同一个表中的列值吗?

即,我可以使用此代码吗?

CREATE TRIGGER tr_Table1_Insert_Table1name
ON Table1name
FOR INSERT AS

BEGIN

UPDATE @NEW
SET COLUMN = 3;

END
GO

如果“否”,如何实现?

最佳答案

如果我正确理解你的问题,这应该可以满足你的要求:

CREATE TABLE dbo.Test_Insert_Trigger (
my_id INT NOT NULL,
my_string VARCHAR(20) NULL,
CONSTRAINT PK_Test_Insert_Trigger PRIMARY KEY CLUSTERED (my_id)
)
GO
CREATE TRIGGER dbo.tri_Test_Insert_Trigger
ON Test_Insert_Trigger FOR INSERT
AS
BEGIN
UPDATE T
SET my_string = CAST(I.my_id AS VARCHAR(20))
FROM
INSERTED I
INNER JOIN dbo.Test_Insert_Trigger T ON
T.my_id = I.my_id
END
GO
INSERT INTO dbo.Test_Insert_Trigger (my_id) VALUES (1)
SELECT * FROM dbo.Test_Insert_Trigger

正如 OMG Ponies 指出的那样,在许多情况下,DEFAULT 约束才是您真正想要的。

关于sql - 当插入事件发生时,我可以将列值更新到触发器中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6524773/

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