Muszę zaktualizować pierwsze N wierszy tabeli spełniającej warunek.Jak zaktualizować n wierszy w tabeli?
Wiem, że mogę zrobić Update Top N ... ale problem polega na tym, że N jest w zmiennej @.
UPDATE TOP @N SET ... nie działa.
Czy istnieje sposób, aby to zrobić, czego właśnie brakuje?
Brak tutaj określonych definicji tabel, ponieważ nie ma znaczenia, jakie są kolumny. Jeśli mogę to zrobić dla tabeli z jedną kolumną, mogę zrobić to dla mojej tabeli.
Fajna sztuczka! Dzięki za nauczenie mnie. Co ciekawe, ta sama składnia nie działa z konstrukcją "SELECT TOP n". Mogę, dlaczego tak się stanie, chociaż jest to nieco dziwna asymetria w TSQL. – mjv
'SELECT TOP n' działa tylko wtedy, gdy' n' jest stałą, a nie zmienną. Tak działało przed rokiem 2005. "TOP" ze zmienną argumentacją i 'TOP' dla instrukcji DML został dodany od 2005 roku i wymaga parens. –
Byłoby to jednak naprawdę fajne, "update top (@N) ustaw modułserser = @ID, gdzie pozycjaserser ma wartość null" daje mi "Niepoprawna składnia w pobliżu słowa kluczowego" zestaw "". – Moose