Mam poniżej wyzwalacza:SQL Server - Po Insert/Dla Insert - Wycofanie
CREATE Trigger instructor_expertise on CourseSections
After Insert
As Begin
......
If (Not Exists(Select AreaName From AreasOfInstructor Where (InstructorNo = @InstructorNo AND AreaName = @AreaName)))
Begin
RAISERROR('Course not in instructors expertise', 16, 1)
rollback transaction
End
GO
Moje pytanie brzmi, czy 'wycofywania transakcji' usunąć wiersz? Co, jeśli zamiast tego jest "Wstaw", czy "wycofanie transakcji" usuwa wiersz w takim przypadku?
Dzięki!
@MitchWheat: transakcja zawsze będzie istnieć - nie? Jednoznacznie lub niejawnie. A wycofanie spowoduje zakończenie tej transakcji i cofnie wszystko, co transakcja ta próbowała zrobić z tabelą. –
Tak, przepraszam Marc, zgadza się. Miałem na myśli wyraźną transakcję. Myślę, że mogłem zabrudzić wodę ... Usuwam poprzedni komentarz. –
Skąd pochodzą wartości "@ InstructorNo' i" @ AreaName' od ?? Zasadniczo, jeśli wywołasz 'ROLLBACK TRANSACTION' w twoim spustu, ** zatrzymasz i przerwiesz ** swój' WSTAW 'i żadne wiersze nie będą wstawiane w ogóle –