我创建了这个触发器,但出现了一个错误
对象名“dbo.informacao”无效
我删除了另一个触发器,但它的名称不同。有什么问题吗?查询没有错误,所以我假设我没有做错什么
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[informacao]
ON [dbo].[FolhaAuxiliar]
AFTER INSERT, UPDATE
AS
BEGIN
SET NOCOUNT ON;
DECLARE @codOperacao int, @codFuncionario int,
@codEquipamento int, @dataInicio datetime,
@dataFim datetime, @produto int, @folha int,
@quantP int, @quantD int, @setorFuncionario int
SELECT
@codOperacao = i.CodOperação,
@codFuncionario = i.CodFuncionário,
@codEquipamento = i.CodEquipamento,
@dataInicio = i.DataInicio,
@dataFim = i.DataFim,
@produto = i.Produto,
@folha = i.Folha,
@quantP = i.qntdproduzida,
@quantD = i.qntddesperdiçada
FROM
inserted i
SELECT @setorFuncionario = f.Setor
FROM Funcionário f
WHERE f.CodFuncionario = @codFuncionario
IF (@setorFuncionario != 2)
BEGIN
RAISERROR('O funcionário não pertence ao setor das operações', 10,1);
ROLLBACK TRANSACTION;
RETURN;
END
ELSE IF(@codEquipamento IN (SELECT f.CodEquipamento FROM FolhaAuxiliar f WHERE DataFim IS NULL))
BEGIN
RAISERROR('O equipamento já está a ser utilizado', 10,1);
ROLLBACK TRANSACTION;
RETURN;
END
ELSE IF (@codFuncionario IN (SELECT f.CodFuncionário FROM FolhaAuxiliar f WHERE DataFim IS NULL))
BEGIN
RAISERROR('O funcionário já se encontra a realizar outra operação', 10,1);
ROLLBACK TRANSACTION;
RETURN;
END
ELSE
BEGIN
INSERT INTO [FolhaAuxiliar](CodOperação, CodFuncionário, CodEquipamento, DataInicio, Produto, Folha, qntdproduzida, qntddesperdiçada, DataFim)
SELECT
CodOperação, CodFuncionário, CodEquipamento, DataInicio,
Produto, Folha, qntdproduzida, qntddesperdiçada, DataFim
FROM
inserted
END
END
1条答案
按热度按时间ojsjcaue1#
不能在数据库中创建两个或多个具有相同名称(包括架构)的对象。只有在对象已首先创建的情况下,才能更改它。
如果不确定,也可以使用以下选项: