Pregunta

Dada la tabla:

CREATE TABLE Table1
(
    UniqueID int IDENTITY(1,1)
    ...etc
)

Ahora, ¿por qué establecerías el incremento en algo diferente a 1?

Puedo entender configurar el valor inicial inicial de manera diferente. Por ejemplo, si, por ejemplo, está creando una tabla de base de datos por mes de datos (por ejemplo, Table1_082009 , Table1_092009 ) y desea iniciar el UniqueID de la nueva tabla donde se encontraba la antigua uno se quedó. (Probablemente no usaría esa estrategia yo mismo, pero bueno, puedo ver gente haciéndolo).

¿Pero para el incremento ? Solo puedo imaginar que sea útil en situaciones realmente extrañas, por ejemplo:

  • después de insertar los datos iniciales, tal vez más tarde alguien querrá activar la inserción de identidad e insertar nuevas filas en los espacios, pero para una búsqueda eficiente en el índice, ¿querrá que las filas estén cercanas entre sí?
  • si está buscando identificadores basados ??directamente en una URL y desea que sea más difícil para las personas acceder arbitrariamente a los otros elementos (por ejemplo, en lugar de que el usuario pueda resolver que cambiar el sufijo de URL de < code> / GetData? id = 1000 a / GetData? id = 1001 , establece un incremento de 437 para que la siguiente URL sea en realidad / GetData? id = 1437 )? Por supuesto, si esta es su "seguridad" entonces probablemente ya estés en problemas ...

No puedo pensar en otra cosa. ¿Alguien ha usado un incremento que no fuera 1, y por qué? Realmente tengo curiosidad.

¿Fue útil?

Solución

Una idea podría ser usar esto para facilitar el particionamiento de datos (aunque podría haber más formas "automatizadas" de hacerlo) :

  • Teniendo en cuenta que tiene dos servidores:
    • En un servidor, comienza en 1 e incrementa en 2
    • En el otro servidor, comienza en 2 e incrementa en 2.
  • Luego, desde su aplicación, envía medias inserciones a un servidor y la otra mitad al segundo servidor
    • algún tipo de equilibrio de carga de software

De esta manera, todavía tiene la capacidad de identificar sus entradas: el " UniqueID " sigue siendo único, incluso si los datos se dividen en dos servidores / tablas.

Pero esa es solo una idea descabellada: probablemente hay otros usos para eso ...

Otros consejos

Una vez, por pura diversión, (Oh sí, tenemos un lado salvaje para nosotros) decidimos aumentar de forma negativa. Era extraño ver que los números crecían en tamaño y tenían un valor más pequeño al mismo tiempo.

Casi no podía sentarme quieto en mi silla.


edit (idea de último momento):
¿Crees que el creador de IDENTITY estaba enamorado de los bucles FOR? Sabes ...

for (i = 0; i<=99; i+=17)

o para aquellas personas que no tienen punto y coma por ahí

For i = 0 to 100 step 17

Solo para entretenimiento. Y tienes que estar REALMENTE aburrido.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top