gpt4 book ai didi

sql-server-2008 - T-SQL如何在插入之前修改值

转载 作者:行者123 更新时间:2023-12-03 07:04:54 24 4
gpt4 key购买 nike

我发现sql server中只有after和instead触发器。并且修改插入的伪表中的值是非法的。然后我的问题出现了:如果我想检查将要插入到我的表中的数据,并且当数据违反我的约束时我应该将这些值修改为默认值,该怎么做?插入后更新值怎么样?但是,如果我的表中没有唯一的主键或列,我如何找到刚刚插入的行然后更新它?

最佳答案

基本上,使用INSTEAD OF INSERT触发器,您可以实现您正在寻找的东西 - 只需从INSERTED伪表中读出数据,修改它,并将其插入表中

所以你的触发器看起来像这样:

CREATE TRIGGER YourTrigger ON dbo.YourTable    
INSTEAD OF INSERT
AS
SET NOCOUNT ON

-- do the INSERT based on the INSERTED pseudo table, modify data as needed
INSERT INTO dbo.YourTable(Col1, Col2, ....., ColN)
SELECT
Col1, 2 * Col2, ....., N * ColN
FROM
INSERTED

当然,您也可以添加例如以 WHERE 子句的形式检查 SELECT .... FROM INSERTED 语句,例如忽略某些行 - 可能性是无限的!

关于sql-server-2008 - T-SQL如何在插入之前修改值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10562584/

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