Quiero actualizar Top 100 registros en sql server. Tengo una tabla T1 con campos de F1 y F2. T1 tiene 200 registros. Quiero actualizar campo F1 de Top 100 registros.
¿Cómo puedo puede actualizar en sql server.
Gracias
Respuestas
¿Demasiados anuncios?Sin ORDER BY
de toda la idea del TOP
no tiene mucho sentido. Necesitas tener una definición consistente de que la dirección es "" y que es "abajo" para el concepto de la parte superior para que sea significativo.
No obstante, SQL Server lo permite, pero no es garantía de un resultado determinista.
La UPDATE TOP
de sintaxis en la aceptó respuesta no admite ORDER BY
cláusula, pero es posible obtener determinista semántica aquí mediante el uso de un CTE o una tabla derivada para definir el orden deseado de la siguiente manera.
;WITH CTE AS
(
SELECT TOP 100 *
FROM T1
ORDER BY F2
)
UPDATE CTE SET F1='foo'
para aquellos que como yo aún atrapado con SQL Server 2000, SET ROWCOUNT {number};
puede ser utilizado antes de la UPDATE
consulta
SET ROWCOUNT 100;
UPDATE Table SET ..;
SET ROWCOUNT 0;
limitará la actualización de 100 filas
Se ha quedado obsoleto por lo menos desde SQL 2005, pero a partir de 2012 SQL todavía funciona