¡Descubre Cómo Usar AUTO_INCREMENT (IDENTITY) en SQL para Incrementar Tus Columnas Automáticamente!post-template-default single single-post postid-46 single-format-standard et_pb_button_helper_class et_fixed_nav et_show_nav et_secondary_nav_enabled et_primary_nav_dropdown_animation_fade et_secondary_nav_dropdown_animation_fade et_header_style_left et_pb_footer_columns4 et_cover_background et_pb_gutter et_pb_gutters3 et_right_sidebar et_divi_theme et-db
771 715 4434

Al editar un campo en SQL, no se trata de entender o no entender por qué se tienen que poner esos datos, simplemente es cuestión de sintaxis.

Es decir, lo mínimo que requieres para definir cualquier columna es su nombre y su tipo, eso es lo mínimo que debes colocar, independientemente de que estés haciendo un ALTER TABLE y el campo ya tenga definido ese dato.

En realidad, lo que estás haciendo es definir una nueva la cual toma el lugar de una columna ya existente.

Por esa cuestión es necesario colocar al menos el nombre y el tipo para poder hacer el cambio.

Los modificadores NOT NULL, NULL, DEFAULT, AUTO_INCREMENT, etc. son completamente opcionales y podrías omitirlos.

Lea también: IVA 21% Excel

Particularidades de la Propiedad AUTO_INCREMENT / IDENTITY

Sin embargo, un campo AUTO_INCREMENT es un caso especial de columna, donde tienes que especificar que el campo sea de tipo entero, no nulo y que sea llave.

No podrías declarar entonces un campo AUTO_INCREMENT con un tipo de datos varchar, o con un campo que pueda aceptar nulos; así es la definición establecida.

Si no la sigues, simplemente no podrás hacer el cambio.

La parte del UNSIGNED en realidad no es obligatoria, podrías haber definido la columna con signo, pero esto es un desperdicio de espacios, pues nunca tendrás ID's negativos.

Como dije anteriormente, no se trata de entender el por qué de las cosas, sino seguir las reglas establecidas por el motor de BD.

Lea también: Guía IVA reducido

Creación y Consideraciones de una Columna de Identidad

Crea una columna de identidad en una tabla.

Debe especificar tanto el valor de inicialización como el incremento, o bien ninguno de los dos.

Valores Consecutivos en una Transacción

No se garantiza que una transacción que inserta varias filas obtenga valores consecutivos para las filas porque podrían producirse otras inserciones simultáneas en la tabla.

Valores Consecutivos después de un Reinicio del Servidor u Otros Errores

SQL Server podría almacenar en memoria caché los valores de identidad por motivos de rendimiento y algunos de los valores asignados podrían perderse durante un error de la base de datos o un reinicio del servidor.

Esto puede tener como resultado espacios en el valor de identidad al insertarlo.

Lea también: ¿Cómo localizar tus XML del SAT?

Si no es aceptable que haya espacios, la aplicación debe usar mecanismos propios para generar valores de clave.

Reutilización de Valores

Para una propiedad de identidad determinada, con un valor de inicialización e incremento específico, el motor no reutiliza los valores de identidad.

Si una instrucción de inserción concreta produce un error o si la instrucción de inserción se revierte, los valores de identidad utilizados se pierden y no vuelven a generarse.

Estas restricciones forman parte del diseño para mejorar el rendimiento y porque son aceptables en muchas situaciones comunes.

Si una tabla con una columna de identidad se publica para replicarla, la columna de identidad debe administrarse de manera apropiada para el tipo de replicación utilizado.

En las tablas optimizadas para memoria, el valor de inicialización y el valor de incremento debe establecerse en 1, 1.

Una vez establecida la propiedad de identidad en una columna, no se puede quitar.

Ejemplo de Declaración

La primera parte del siguiente script de Transact-SQL se ha diseñado solo como ejemplo.

Esta sentencia crea la dbo.Employees tabla donde cada fila nueva recibe automáticamente un valor único EmployeeID como bigint.

Podemos usar entonces SELECT...

La columna de la tabla objetivo hereda la IDENTITY propiedad de la tabla fuente.

tags: #como #declarar #un #autoincrement #SQL