Problem z napisaniem procedury dodającej dane do bazy MSSQL

0

Witam,

Mam taką tabele:

 create procedure addReservation(@member_no int , @serial_no int , @remarks varchar(250))
as

begin
SET IDENTITY_INSERT dbo.Reservation ON
insert into reservation values ( @member_no , @serial_no , GETDATE() , @remarks)

end;

I taką procedure:

create procedure addReservation(@member_no int , @serial_no int , @remarks varchar(250))
as

begin
SET IDENTITY_INSERT dbo.Reservation ON
insert into reservation values ( @member_no , @serial_no , GETDATE() , @remarks)


end; 

Wyskakuje mi taki błąd:

Msg 8101, Level 16, State 1, Procedure addReservation, Line 8
An explicit value for the identity column in table 'reservation' can only be specified when a column list is used and IDENTITY_INSERT is ON.

Jak sobie z tym poradzić?

Dziękuję

0

Nie podałeś DDL tabeli, tylko dwa razy procedurę. Ale i tak wiem, o co chodzi.
W MS SQL jeśli chcesz podawać wartości identity (po co?), to musisz pamiętać o 3 rzeczach:

  1. Włączyć IDENTITY_INSERT na ON na tej tabeli.
  2. Dodać taką wartość do tabeli - trzeba wymianić pole IDENTITY w INSERT czyli np. INSERT Imiona(id, imie) Values(3, 'Alabama')
  3. IDENTITY_INSERT może być ON na jednej tabeli tylko, więc najlepiej od razu wyłączyć, A najlepiej uzywać rozsądnie. Czyli wcale.

pozdrawiaMM

1 użytkowników online, w tym zalogowanych: 0, gości: 1