最近我在使用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)