SQL Server, ЕСЛИ НЕ СУЩЕСТВУЕТ использование?

Вы взглянули на RegExLib?

Вводящий американский номер телефона, возвращенный настоящий список возможностей.

44
задан Ryan Kirkman 24 July 2009 в 01:32
поделиться

1 ответ

Вы проверили, что есть в на самом деле строка, где Staff_Id = @PersonID? То, что вы опубликовали, отлично работает в тестовом сценарии, если строка существует. Если вы закомментируете оператор вставки, возникнет ошибка.

set nocount on

create table Timesheet_Hours (Staff_Id int, BookedHours int, Posted_Flag bit)

insert into Timesheet_Hours (Staff_Id, BookedHours, Posted_Flag) values (1, 5.5, 0)

declare @PersonID int
set @PersonID = 1

IF EXISTS    
    (
    SELECT 1    
    FROM Timesheet_Hours    
    WHERE Posted_Flag = 1    
        AND Staff_Id = @PersonID    
    )    
    BEGIN
        RAISERROR('Timesheets have already been posted!', 16, 1)
        ROLLBACK TRAN
    END
ELSE
    IF NOT EXISTS
        (
        SELECT 1
        FROM Timesheet_Hours
        WHERE Staff_Id = @PersonID
        )
        BEGIN
            RAISERROR('Default list has not been loaded!', 16, 1)
            ROLLBACK TRAN
        END
    ELSE
        print 'No problems here'

drop table Timesheet_Hours
47
ответ дан 26 November 2019 в 22:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: