Masz pomysł, jak zaktualizować kolumnę, ale tylko dla row number=1
na row number=10
na przykład?Serwer SQL, jak zaktualizować kolumnę o żądany numer wiersza:
Odpowiedz
Generalnie w SQL Server Update komunikat jest napisane jak
Update <Table Name> Set <Column Name> = <Value> where <Search Condition>.
dzięki, ale Gdzie
Następnie musisz wyjaśnić, skąd wiesz, który wiersz to "numer wiersza" 1, który wiersz to "numer wiersza" 2 itd. –
ta wykorzystuje tabelę pochodzącą wyizolować 10 wierszy, które chcesz zaktualizować. Zauważ, że zarówno mieć ORDER BY w nich określić 10 wierszy
UPDATE
T
SET
SomeColumn = @newValue --or constant etc
FROM
(
SELECT
*,
ROW_NUMBER() OVER (ORDER BY something) AS rn
FROM
SomeTable
WHERE
...
) T
WHERE
rn <= 10
podczas próby drugiego przykładu Otrzymuję komunikat o błędzie: Msg 4428, Poziom 16, Stan 1, Linia 1 Wyprowadzona tabela "t" nie jest aktualizowalna, ponieważ definicja zawiera klauzulę TOP. – largo68
@ largo68: usunięto – gbn
ROW_NUMBER(), OVER nie są poprawne dla SQL Server 2000. Chyba że pytanie jest oznaczone niepoprawnie. –
można dać więcej informacji, schematu tabeli i być może problem starasz się osiągnąć. – RubbleFord
wiersze od 1 do 10 muszą być identyfikowalne. Nie istnieje domniemana lub przyjęta kolejność, chyba że istnieje ZAMÓWIENIE PRZEZNACZONE gdzieś – gbn
Unfortunmalety to SQL Server 2000! – largo68