Sql server SQL触发器错误代码
我正在尝试开发一个SQL Server触发器,但当我更新具有与触发器关键字值相同的值的记录时,它似乎为我抛出了一个错误,但如果只有一个记录与该值匹配,则不会抛出错误 错误代码: 关于我为SNL开发的触发器,它似乎产生了一个错误:子查询返回的值超过1。当子查询在=、!=、=或者当子查询用作表达式时。声明已终止 触发代码:Sql server SQL触发器错误代码,sql-server,tsql,triggers,Sql Server,Tsql,Triggers,我正在尝试开发一个SQL Server触发器,但当我更新具有与触发器关键字值相同的值的记录时,它似乎为我抛出了一个错误,但如果只有一个记录与该值匹配,则不会抛出错误 错误代码: 关于我为SNL开发的触发器,它似乎产生了一个错误:子查询返回的值超过1。当子查询在=、!=、=或者当子查询用作表达式时。声明已终止 触发代码: USE [TestTrigger] GO /****** Object: Trigger [dbo].[TestTrigger] Script Date: 06/04/2
USE [TestTrigger]
GO
/****** Object: Trigger [dbo].[TestTrigger] Script Date: 06/04/2015 08:29:34 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[TestTRigger]
ON [dbo].[SN_Contact2]
FOR INSERT,UPDATE
AS
BEGIN
DECLARE @IDSTATUS varchar(254)
DECLARE @CONTACTID VARCHAR(36)
DECLARE @CLIENTURL nvarchar(254)
set @CONTACTID = (select contact_contactid from inserted)
set @IDSTATUS = (select contact_category from inserted)
set @CLIENTURL = (select CUST_1004 from inserted)
IF @IDSTATUS = 'Client'
BEGIN
update sn_contact2 set CUST_ID_Status_Change_Date = getdate()
where CUST_Main_Contact = 'X' and cust_id_status_change_date is null
and CUST_1004 = @CLIENTURL
END
END
有什么想法吗?这些都是断层线。。当通过单个查询更新/插入超过1条记录时,您将收到此错误(因为子查询返回的值超过1…) 将更新查询从单行更新更改为类似:
update sn_contact2 set CUST_ID_Status_Change_Date = getdate()
where CUST_Main_Contact = 'X' and cust_id_status_change_date is null
and CUST_1004 --= @CLIENTURL
in (
select CUST_1004 from inserted where contact_category = 'Client'
)
谢谢你,先生!我要试试那个。非常感谢:)
update sn_contact2 set CUST_ID_Status_Change_Date = getdate()
where CUST_Main_Contact = 'X' and cust_id_status_change_date is null
and CUST_1004 --= @CLIENTURL
in (
select CUST_1004 from inserted where contact_category = 'Client'
)