Вложенный запрос вернул больше одного значения. Это запрещено, когда вложенный запрос следует после =, !=, <, <=, >, >=

CREATE TRIGGER u_request_status_and_insert_connection
ON Requests
AFTER UPDATE
AS
BEGIN
    DECLARE @ID_request INT = (SELECT ID_request FROM inserted),
    @Request_status BIT = (SELECT Request_status FROM inserted)
    DECLARE @ID_housing INT = (SELECT ID_housing FROM inserted),
    @Tariff_name VARCHAR(15) = (SELECT TOP(1) Tariff_name FROM Tariffs)

    PRINT @ID_housing

    IF (@Request_status = 1)
    BEGIN
        DELETE Requests
        WHERE ID_request = @ID_request

        INSERT INTO Existing_connections(ID_housing, Tariff_name)
        VALUES (@ID_housing, @Tariff_name)

        PRINT 'Заявка одобрена.'
    END
    DECLARE @ID_client INT = (SELECT ID_client FROM Housing WHERE ID_housing = @ID_housing)
    DECLARE @Surname_and_name_client VARCHAR(MAX) = (SELECT Surname + ' ' + Name FROM Clients WHERE ID_client = @ID_client),
    @Type_name_of_residence VARCHAR(50) = (SELECT Type_name_of_residence FROM Housing WHERE ID_housing = @ID_housing),
    @Street_name VARCHAR(50) = (SELECT Street_name FROM Housing WHERE ID_housing = @ID_housing)
    DECLARE @Area_name VARCHAR(50) = (SELECT Area_name FROM Streets WHERE Street_name = @Street_name),
    @House_num INT = (SELECT House_number FROM Housing WHERE ID_housing = @ID_housing),
    @Floor_on_reside INT = (SELECT Floor_on_reside FROM Housing WHERE ID_housing = @ID_housing)

    IF (@Type_name_of_residence = 'Квартира')
    BEGIN
        DECLARE @Apartment_number INT = (SELECT Apartment_number FROM Housing WHERE ID_housing = @ID_housing)
        INSERT INTO Database_audit(Text_operation)
        VALUES ('Заявка клиента под ID = ' + CONVERT(VARCHAR, @ID_client) + ' ' + @Surname_and_name_client + 
        ' на подключение цифрового телевидения в квартиру №' + CONVERT(VARCHAR, @Apartment_number) + ', ' + @Street_name + ', ' 
        + CONVERT(VARCHAR, @House_num) + ', район ' + @Area_name + ' была переведена в статус ' + 
        CONVERT(VARCHAR, @Request_status) + '.')
    END
    ELSE
    BEGIN
        INSERT INTO Database_audit(Text_operation)
        VALUES ('Заявка клиента под ID = ' + CONVERT(VARCHAR, @ID_client) + ' ' + @Surname_and_name_client + 
        ' на подключение цифрового телевидения в частный дом, ' + @Street_name + ', ' 
        + CONVERT(VARCHAR, @House_num) + ', район ' + @Area_name + ' была переведена в статус ' + 
        CONVERT(VARCHAR, @Request_status) + '.')
    END
END
GO

UPDATE Requests
SET Request_status = 1
WHERE ID_request = 2

Во время выполнения триггера вылетает вот такая ошибка:введите сюда описание изображения


Извините, не тот триггер скинул. Оказывается, проблема в другом триггере.


Ответы (0 шт):