¿Cuál es el límite superior para una clave primaria de autoincrementación en SQL Server? ¿Qué sucede cuando una clave primaria de autoincrementación de SQL Server alcanza su límite superior?Límite superior para clave primaria autoincrement en SQL Server
Respuesta
La respuesta de Joel es correcta, es el límite superior de cualquier tipo de datos que utilice.
He aquí un ejemplo de dos de ellos:
- int: 2^31-1 (2.147.483.647)
- bigint: 2^63-1 (9.223.372.036.854.775.807)
Tengo realidad Llegué al límite en un trabajo en el que trabajé. El error real es:
Msg 8115, Level 16, State 1, Line 1 Arithmetic overflow error converting IDENTITY to data type int. Arithmetic overflow occurred.
Hay un par de soluciones a esto que puedo pensar en mi cabeza. El número 1 es probablemente muy difícil y no muy probable, el número 2 es fácil, pero probablemente cause problemas en su código base.
- Si la columna de identidad no es importante para usted (no es una clave externa, etc.), entonces puede volver a resembrar la base de datos y restablecer la columna de identidad.
- Cambie su columna de identidad a un número mayor. Entonces, por ejemplo, si ha desbordado un int, cambie su columna de identidad a un int grande. Buena suerte desbordante que :)
Probablemente haya otras soluciones, pero no hay una solución mágica fácil. Solo espero que esto no ocurra en una mesa que sea el centro de un grupo de relaciones, porque si lo hace, tendrás mucho dolor. No es una solución difícil, solo una tediosa y larga.
Depende del tipo de datos. Si usa bigint, es poco probable que se desborde. Incluso una int normal te da un par de miles de millones de filas. Nunca me he desbordado, así que no puedo decirte lo que sucederá si lo haces.
, tipos de datos descripciones:
BIGINT Integer data from -2^63 through 2^63 - 1
INT Integer data from -2^31 through 2^31 - 1
SMALLINT Integer data from -2^15 through 2^15 - 1
TINYINT Integer data from 0 through 255
Cuando llegue al límite superior del autoincrement va al límite inferior.
Te diré lo que sucede ... mis datos dejaron de insertarse en esa tabla específica. La base de datos todavía funciona, pero encontré datos faltantes e incoherentes. Con un poco de investigación, encontré la tabla de errores, luego ejecuté una inserción manual. El error es el mismo que el anterior.
Tuve que cambiar la columna a BIGINT. En una base de datos de 26 GB en un servidor algo lento, tomó aproximadamente 30 minutos. En la versión de archivo de la base de datos (150 GB más o menos) tomó bastante más tiempo.
Afortunadamente, no hay demasiadas relaciones para esta tabla, por lo que el dolor fue muy leve.
DBCC CHECKIDENT (alguna_tabla, RESEED, 1)
Esto restablece la identidad a 1 en la tabla 'alguna_tabla'
No estoy seguro si esta es la mejor manera de hacer esto.
- 1. ¿Cómo almacena SQL Server una clave primaria compuesta?
- 2. Cómo crear una clave primaria compuesta en SQL Server 2008
- 3. clave primaria sql e índice
- 4. ¿Cómo puedo hacer una clave primaria como AutoIncrement
- 5. SQL Server auto incrementar una columna sin clave primaria
- 6. Tipo de datos sql para clave principal - SQL Server?
- 7. ¿La clave primaria SQL puede aceptar '0'?
- 8. Autoincrement de índice para Microsoft SQL Server 2008 R2
- 9. Diferencia entre la palabra clave superior y la clave de límite en SQL
- 10. Identidad de clave no primaria Correlación de AutoIncrement con Fluidez NHibernate
- 11. Límite de SQL Server FILESTREAM
- 12. Máximo para clave primaria int autoincremental en SqlServer
- 13. Sin autoincrement para la clave principal Integer en sqlite3
- 14. Límite de longitud de clave primaria de PostgreSQL
- 15. Restablecer AutoIncrement en SQL Server después de Eliminar
- 16. LÍMITE 10..20 en SQL Server
- 17. clave primaria versus clave
- 18. SQL: ¿Necesita una clave primaria autoincremental para tablas Many-Many?
- 19. Clave primaria basada en el año?
- 20. SQL Server 2008 Búsqueda de texto completo en una tabla con una clave primaria compuesta
- 21. Autoincrement clave principal en la base de datos Oracle
- 22. ¿Cómo agrego una clave primaria auto_increment en la base de datos de SQL Server?
- 23. SQL Azure Restablecer autoincrement
- 24. Límite de memoria superior?
- 25. ¿Cómo puedo definir una clave primaria compuesta en SQL?
- 26. ¿Cómo cambiar una clave primaria en SQL a auto_increment?
- 27. Crear una clave externa compuesta en SQL Server 2008
- 28. Clave primaria y externa al mismo tiempo
- 29. ¿Hay un límite superior para BigInteger?
- 30. array VB6 con -1 para límite superior
estoy usando int (11) ¿qué tal eso? ¿Cuántos datos?y qué pasó si el auto_increment se desbordó? –