2011-06-03 14 views

Respuesta

6

Supongo que la base de datos de SQL Server se diseñó originalmente en una versión anterior a SQL Server 2000, y esta era la única forma en que podían obtener un 'entero' más grande que el int estándar. Desde entonces, un bigint hubiera sido más apropiado.

0

Se supone que la precisión máxima para un número entero. Ciertamente uso esto todo el tiempo para las claves primarias, que se suministran desde un generador de base de datos que genera números de 64 bits.

Realmente no uso SQL-Server, pero el número entero en mi base de datos es un número de 32 bits, no de 64 bits. Como se sugirió en la otra respuesta, es probable que haya comenzado en una base de datos donde este tipo de limitación estaba en su lugar.

+0

No es un número entero, sin embargo. ¿Por qué no usar 'int' si quieres un número entero? – JoelFan

1

No hay un tipo correcto o incorrecto para una clave. Debe elegir atributos y tipos que representen con precisión el dominio comercial o que coincidan con los datos de entrada. Si los datos que está grabando son de tipo numérico, ¿por qué no los almacenará como numéricos?

+1

¡una clave principal no debe ser datos comerciales! – JoelFan

+1

Tal vez su predecesor sabía mejor – sqlvogel

+0

http://rapidapplicationdevelopment.blogspot.com/2007/08/in-case-youre-new-to-series-ive.html – JoelFan

0

Si permite que Hibernate genere su esquema, convertirá un tipo de datos Largo en numérico (19,0) con jtds. Algo similar puede haber sucedido en tu caso.

Cuestiones relacionadas