![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 87 Pomógł: 0 Dołączył: 20.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Za pomoca wyzwalacza chce zrealizowac usuwanie pracownikow (z kazdej tabeli informacje o danym pracowniku maja zostac suuniete). Ale na poczatek chce usunac z jednej tylko tabeli, i napisalem w tym celu taki wyzwalacz:
Ale jak go mam zmusic do usuniecia danych z tabeli ? Daje EXECUTE, i komunikat ze wszystko okay, a dane dalej są w tabeli. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Trigger ten będzie wyzwalany zamiast każdego wywołania
Dodatkowo wewnątrz triggera utworzona jest tablica tymczasowa: deleted, która zawiera wiersze do usunięcia. Na przykład dla zapytania:
tabela deleted zawierać będzie wszystkie wiersze z tabeli [DaneOsobowe], w których pole [Imie] zawiera tekst "Basia". Najprostszym sposobem będzie zastosowanie w triggerze podzapytań:
Możesz też zadeklarować kursor, przejechać nim po wszystkich wierszach tabeli deleted, zapisywać z każdego wiersza wartość pola [imie] do zmiennej i używać jej do usuwania wierszy z tabel. Ten post edytował Kicok 3.05.2007, 08:48:32 -------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 87 Pomógł: 0 Dołączył: 20.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
A w jaki sposób ja mam odpalić (uruchomić) wyzwalacz aby zobaczyć jego działanie? Samo EXECUTE chyba tylko go "kompiluje". Bo jak pisałem podobny na próbę gdzie zakazywano usuwania Osób z tabeli to dopiero uaktywniał się gdy wydałem zapytanie aby usunąć osobę. A tutaj nie wiem jak zobaczyć efekt jego działania ...
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
No przecież napisałem:
Cytat Trigger ten będzie wyzwalany zamiast każdego wywołania
Jeśli cię to nie przekonuje to zrób sobie taki trigger:
A następnie sprawdź co zwróci zapytanie:
-------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 87 Pomógł: 0 Dołączył: 20.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Informuje MSSQL, że instrukcje triggera mają zostać wykonane zamiast zapytania:
Inne możliwości to: AFTER DELETE / FOR DELETE które informują MSSQL, że instrukcje triggera mają zostać wykonane po wykonaniu zapytania
Więcej informacji: http://msdn2.microsoft.com/en-us/library/a...54(sql.80).aspx -------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 00:47 |