![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 2.12.2015 Ostrzeżenie: (0%) ![]() ![]() |
dbo.A
|id | x | k | ------------- |5 | 2 | 0 | |6 | 3 | 1 | |7 | 2 | 0 | dbo.B |id | x | s | a | ----------------- | 1 | 2 | 3 | 5 | | 2 | 3 | 6 | 6 | | 3 | 3 | 7 | 0 | | 4 | 3 | 7 | 0 |
Witam, mam 2 tabele A i B. Do tabeli B trafiaja dane za pomocą formularza, gdzie wybieramy x i na jego podstawie przydzielane jest id z tabeli A. Chodzi o to aby wszystko odbywało się automatycznie. Napisałem takiego triggera jak widać powyżej i mam problem, gdy rekord o id=2 w tabeli B zmieni s=6 na np. s=4 i w tabeli A pole k=1 zostanie zmienie na k=0 to w takim przypadku trigger zaktualizuje tabele B i dwa ostatnie rekordy zmienią s=7 na s=6 oraz do pola a zostanie przypisane id=11 (czyli najpierw przejdzie update pierwszy, później drugi itp) i pole k w tabeli A które pełni funkcję ograniczenia w tym momencie nie działa. Pytanie, czy da sie jakoś zrobić tak aby te pięć update przeszło rekord po rekordzie, czyli, że rekord o id=3 tylko zmieni s=6 i a=11 w tabeli B oraz w tabeli A, k=1 a rekord o id=4 zostanie nieruszony i będzie czekał na swoją kolej ![]() Podsumowując problem polega na tym, że pierwszy update wykonuje się po całej tabeli, następnie kolejny update przechodzi po całej tabeli .... a aby działało tak jak bym to chciał powinny te wszystkie update wykonywać się rekord po rekordzie. Proszę zwrócić uwagę że jest to MSSQL nie MySQL. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 11:20 |