Aquí está mi problema: Tengo una base de datos de SQL Server llamada emp
. Tiene una tabla employee
(con la columna userid int
). Necesito recuperar el último registro de userid
en la tabla employee
con incremento en el valor de usuario + 1. En este momento lo hice en mi GUI. Entonces, ¿cómo escribo una consulta sql para ello?Recuperar el último registro de la tabla de SQL Server
Respuesta
No debe aumentar manualmente la columna de ID de usuario, use una columna de IDENTIDAD. Eso agregará automáticamente 1 por cada nueva fila.
CREATE TABLE Employees (
UserId INT IDENTITY PRIMARY KEY NOT NULL,
UserName NVARCHAR(255) NOT NULL,
// etc add other columns here
)
Si realmente tiene que seleccionar el ID de usuario más alto es una consulta muy simple:
SELECT MAX(UserId) + 1
FROM Employees
[Editar]
Sobre la base de sus comentarios, debe utilizar la consulta SELECT MAX(UserId) + 1 FROM Employees
. Pero tenga en cuenta que esto no garantiza que el número será la identificación. Normalmente no mostraría un valor Id hasta después de que el registro se haya guardado en la base de datos.
Para devolver el expediente con el mayor identificador de usuario, que puede hacer:
SELECT TOP 1 userid
FROM employee
ORDER BY userid DESC
o ...
SELECT MAX(userid)
FROM employee
Si su plan es entonces incrementar el ID de usuario de forma manual e inserte una nueva registrar con esa nueva identificación, recomendaría no hacerlo, ¿qué ocurre si 2 procesos intentan hacerlo al mismo tiempo? En su lugar, use una columna IDENTITY como userid y deje que el incremento se maneje automáticamente
Esto le dará el último registro insertado, si no tiene la columna Identity.
EXECUTE ('DECLARE GETLAST CURSOR DYNAMIC FOR SELECT * FROM [User]')
OPEN GETLAST
FETCH LAST FROM GETLAST
CLOSE GETLAST
DEALLOCATE GETLAST
Si ha configurado una identidad que puede utilizar a continuación.
SELECT top(1) ID from [YourTable] order by ID desc
Problema Sloved gracias a todos por la respuesta rápida –
Hay ** realmente ** no hay necesidad de un cursor (asesino de gran rendimiento !!) en esta situación ..... –
Esto le dará el último registro insertado si no lo hace t tiene una identificación como autoincrement. Pruebe a reemplazar la tabla y vea el resultado –
Para tener el nuevo ID de usuario antes de guardarlo, cree una tabla NextId.
Antes de introducir el usuario, obtener el nuevo valor de NextID:
UserId = SELECT Coalesce(NextId, 0) + 1 from NextId
A continuación, actualice la tabla NextID:
UPDATE NEXTID SET NextId = IserID
Y a continuación, utilizar ese valor en su código de creación de usuarios
Puede obtener lagunas, existen métodos más complicados para evitarlas; pero creo que esto va a hacer
Si publica código, XML o muestras de datos, ** por favor ** resalte esas líneas en el editor de texto y haga clic en " código de muestra "botón ({}) en la barra de herramientas del editor para formatear y sintaxis muy bien ¡Resaltarlo! –
¿Es ese el motivo del menos 1? – Karel
- 1. ¿Cómo seleccionar el último registro de una tabla en SQL?
- 2. MySQL recuperar el último registro para el grupo
- 3. Cómo seleccionar el último registro de la tabla MySQL utilizando la sintaxis SQL
- 4. forma más segura de acceder al último ID de registro de una tabla
- 5. Recuperar un número diferente de filas para cada categoría desde la tabla de SQL Server
- 6. Conseguir el último registro de SQL en condición WHERE
- 7. CodeIgniter activerecord, recuperar el último id de inserción?
- 8. Cómo obtener el último registro por grupo en SQL
- 9. recuperar el espacio no utilizado en SQL Server 2008
- 10. diseño del último registro en una tabla de datos jsf
- 11. Truncar el archivo de registro de transacciones de SQL Server
- 12. Obtiene el último registro de la colección mongodb
- 13. Obtener último registro de una tabla en Postgres
- 14. ¿Cómo obtener el último registro de Sqlite?
- 15. Disparo de SQL Server: inserte el registro eliminado en otra tabla con deletetime
- 16. ¿Cómo puedo verificar el registro duplicado en SQL Server?
- 17. ¿Cómo recuperar el primer y último registro de un registro agrupado en una consulta MySQL con funciones agregadas?
- 18. Cómo puedo administrar el tamaño de registro de SQL Server
- 19. Azure Table Storage obtener el último registro
- 20. Leer el registro de transacciones de SQL Server
- 21. SQL Server: Permisos en la tabla
- 22. Actualice la misma tabla en SQL Server
- 23. SQL Server - ¿Permiso por tabla?
- 24. Tabla "Herencia" en SQL Server
- 25. C# + SQL Server ExecuteScalar() no devuelve el último ID insertado
- 26. Límite de registro de tabla temporal en el servidor Sql
- 27. Cómo obtener el último registro
- 28. Duplicación vs. Registro de envío en SQL Server 2005
- 29. Para encontrar el registro de SQL Server 2005 Management Studio
- 30. SQL Server 2008 consulta de tabla cruzada
gracias por su rápida confianza JK.pero el mio requiremnt es this.my gui tiene un formulario llamado nuevo emloyee.so hay un campo de texto que muestra el ID de usuario de la tabla emp. Cuando haga clic en agregar nuevo empleado quiero mostrar ese val de prueba como último valor de emp id +1. –
Si necesita mostrar cuál será el Id del nuevo empleado antes de agregarlo, utilice la consulta anterior: 'SELECT MAX (UserId) + 1 FROM Employees'. Pero existe la posibilidad de que ese no sea el número de identificación cuando el nuevo empleado realmente se guarda. –