gpt4 book ai didi

sql-server - 当附加触发器时,Linq-to-sql 插入和更新失败

转载 作者:行者123 更新时间:2023-12-02 09:31:34 26 4
gpt4 key购买 nike

我最近在 linq-to-sql 方面遇到了一些问题。问题在于,当我们将触发器附加到事件时,它“认为”插入和更新失败。一个示例可以是一行,其中附加了一个触发器,以便在更改行时将“LastUpdated”冒号设置为当前时间。这将导致 linq-to-sql 认为更新或插入失败,但这只是某些时候,因为它有时会经历,我认为这是当 sql 服务器负载较重时,因此无法在验证之前执行触发器,这只是猜测。由于我的脚本只是一个更大脚本的一部分,因此禁用触发器不是一个选项,所以我需要找到解决方案,或者重写我的程序。你们中是否有人遇到过这个问题并找到了解决方案,例如在插入后禁用验证?

触发器。

USE [cnhha]
GO
/****** Object: Trigger [dbo].[LastUpdated] Script Date: 05/12/2011 16:26:51 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[LastUpdated] ON [dbo].[CN_User]
FOR INSERT, UPDATE
AS

update cn_user set lastupdated=getdate() where campusnetuserid in (select campusnetuserid from inserted)

最佳答案

您可能需要SET NOCOUNT ON在你的触发器中

除了我的 question "SET NOCOUNT ON usage" 中提到的狭义情况(SQLDataAdapter) ,大多数客户端代码都需要它

如果您能够将客户端 UPDATE 更改为使用 DEFAULT 关键字,您也可以删除触发器

update cn_user
set col1 = this, col2 = that,...,
lastupdated= DEFAULT
where ...

关于sql-server - 当附加触发器时,Linq-to-sql 插入和更新失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5880413/

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