2010-12-07 33 views
6

¿Qué pasa después de superar los 2147483647 registros?Int Clave principal: excede el rango int.

+3

Dejó salir el humo –

+1

Sería fácil de probar: ¡cree una columna de IDENTIDAD sembrada en 2147483646 y luego agregue dos registros! :-) –

+0

Espera ........... –

Respuesta

12

Pruébelo

CREATE TABLE #tester (
    testerid INT IDENTITY(1, 1) not null CONSTRAINT pk_tester 
    PRIMARY KEY CLUSTERED) 

DBCC checkident(#tester, reseed, 2147483647) 

INSERT #tester DEFAULT VALUES 
INSERT #tester DEFAULT VALUES 

Msg 8115, nivel 16, estado 1, línea 1
error de desbordamiento aritmético al convertir IDENTIDAD a tipo de datos int.

Ver también What To Do When Your Identity Column Maxes Out una solución rápida

+3

+1 Me encanta ejecutar en lugar de leer –

+0

gracias hombre, ¡buenas cosas! – 001

1

La mayoría de la gente se olvida que hay un lado negativo a int que es uno más grande que el lado positivo. Si crees que puedes superar los valores int positivos, comienza tu identidad en el extremo negativo del rango -2,147,483,648. O para jugar realmente con un nuevo comienzo de DBA en 2,147,483,647 y paso por -1.

1

Si cree que es probable, utilice un tipo de datos con un rango mayor. NUMERIC o BIGINT por ejemplo.