错误“对象名称无效”

lg40wkob  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(325)

我创建了这个触发器,但出现了一个错误
对象名“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
ojsjcaue

ojsjcaue1#

不能在数据库中创建两个或多个具有相同名称(包括架构)的对象。只有在对象已首先创建的情况下,才能更改它。
如果不确定,也可以使用以下选项:

CREATE OR ALTER TRIGGER [dbo].[informacao]
...

相关问题