ALTER PROCEDURE "DBA"."nieobecnosc_lekarza" (@idLekarza int,@funkcja varchar(50), @nb date) AS BEGIN DECLARE @zmiennik INT DECLARE @datazabieg DATE DECLARE @idz INT DECLARE @zmienna INT DECLARE kursor CURSOR FOR SELECT Z.data_zabieg, Z.id_zabieg INTO @datazabieg,@idz FROM ZABIEG Z JOIN zespol_zabiegowy zes ON ( Z.id_zabieg=zes.id_zabieg) WHERE zes.id_pracownik=@idLekarza AND Z.data_zabieg=@nb /* wybieramy zmiennika */ SET @zmiennik = (SELECT TOP 1 P.id_pracownik FROM PRACOWNIK P WHERE id_pracownik <> @idLekarza AND P.funkcja_szpital= @funkcja ORDER BY P.id_pracownik) OPEN kursor WITH HOLD WHILE @@FETCH_STATUS= 0 BEGIN FETCH NEXT kursor INTO @datazabieg,@idz BEGIN TRANSACTION UPDATE zespol_zabiegowy SET id_pracownik=@zmiennik WHERE id_pracownik=@idLekarza AND id_zabieg=@idz COMMIT TRANSACTION END CLOSE kursor END