Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

SQL Server JEŚLI NIE ISTNIEJE Użycie?

Czy sprawdziłeś, że w rzeczywistości istnieje wiersz, w którym Staff_Id =@PersonID? To, co opublikowałeś, działa dobrze w skrypcie testowym, zakładając, że wiersz istnieje. Jeśli skomentujesz instrukcję insert, zostanie zgłoszony błąd.

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy mierzysz wydajność programu SQL Server za pomocą tych wskaźników?

  2. SQL Server — znajdź n-te wystąpienie w ciągu znaków

  3. EXEC sp_executesql z wieloma parametrami

  4. Zakres tabel tymczasowych w SQL Server

  5. 5 sposobów znajdowania wierszy zawierających wielkie litery w SQL Server