当我更新单行时,它工作正常。但是当我更新所有行时:
UPDATE cad_bilhetes
SET ligacao_acobrar = 'False'
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
消息 512,级别 16,状态 1,过程 TG_CAD_BILHETES_UPDATE,第 34 行子查询返回了 1 个以上的值。当子查询跟随 =、!=、<、<=、>、>= 或当子查询用作表达式时,这是不允许的。该语句已终止。
在 TG_CAD_BILHETES_UPDATE 的第 34 行中有:
DECLARE @VALOR_LIGACOES_DDI_ATUAL DECIMAL(7,2)
Run Code Online (Sandbox Code Playgroud)
触发器的开始:
ALTER TRIGGER [dbo].[TG_CAD_BILHETES_UPDATE]
ON [dbo].[CAD_BILHETES]
INSTEAD OF UPDATE
AS
BEGIN
DECLARE @ID INT
DECLARE @VALOR_BILHETE_NOVO DECIMAL(7,2)
DECLARE @VALOR_BILHETE_ATUAL DECIMAL(7,2)
DECLARE @ENCONTROU INT
DECLARE @ID_CONTRATACAO INT
DECLARE @TIPO VARCHAR(2)
DECLARE @TIPO_APARELHO VARCHAR(1)
DECLARE @ID_COMPETENCIA INT
DECLARE @ID_CONTRATACAO_ATUAL INT
DECLARE @ID_CONTRATACAO_NOVO INT
DECLARE @VALOR_LIGACOES_DDD_FIXO_NOVO DECIMAL(7,2)
DECLARE @VALOR_LIGACOES_DDD_MOVEL_NOVO DECIMAL(7,2)
DECLARE @VALOR_LIGACOES_LOCAL_MOVEL_NOVO DECIMAL(7,2)
DECLARE @VALOR_LIGACOES_LOCAL_FIXO_NOVO DECIMAL(7,2) …
Run Code Online (Sandbox Code Playgroud)