SQL IDENTITY: Columna de identidad en SQL

La columna con propiedad identidad o SQL Identity se usa para llenar una columna con números crecientes en la inserción. Al diseñar una tabla para una base de datos, es posible que se deba completar una columna con un número diferente en cada fila insertada. Una columna de identidad puede ser una buena manera de completar automáticamente una columna numérica cada vez que se inserta una fila.

La propiedad SQL identity a menudo se definen como columnas de enteros, pero también se pueden declarar como bigint, smallint, tinyint o numéricas o decimales, siempre que la escala sea cero. Los valores generados automáticamente para cada fila insertada se basan en la propiedad de incremento de la columna de identidad.

Cómo configurar la columna identidad ( sql Identity )

En esta sección, aprenderemos cómo configurar la columna de identidad con la propiedad SQL identity en SQL Server.

  • Para crear una columna de identidad ( SQL Identity ) en SQL Server, debe usar la propiedad Especificación de identidad al crear la tabla.
  • La propiedad Especificación de identidad toma dos valores:
    • Inicial: el valor inicial desde donde desea comenzar el conteo de la columna de identidad
    • incremento: el incremento que se realizará después de cada valor de la columna de identidad
  • Vamos a crear una tabla con una columna de identidad ( SQL identity) en SQL Server Management Studio.
  • Abra SQL Server Management Studio y conéctelo al motor de base de datos de SQL Server.
  • En la ventana Explorador de objetos, navegue hasta las bases de datos en las que desea crear una tabla y haga clic con el botón derecho en Tablas, haga clic en Nuevo y luego en Tabla.

sql identity tabla sql

  • Ahora ingrese los nombres de las columnas junto con sus respectivos tipos de datos.
  • Al crear la tabla, asegúrese de que el tipo de datos de la columna que desea establecer como columna de identidad debe ser de tipo entero.
  • Haga clic en la columna que desea establecer como la columna de identidad y navegue a la pestaña Propiedades de columna a continuación.
  • Navegue a la opción Especificación de identidad y haga doble clic para modificar las especificaciones de identidad de la columna.
  • Cambie la propiedad Identidad (sql Identity) a  y especifique el Incremento de identidad y la inicialización de la  identidad y guarde la tabla.

sql Identity

  • Una vez que haya configurado la columna de identidad ( sql Identity ) en la tabla de SQL Server, puede intentar insertar filas en la tabla. 

Cómo configurar la columna de identidad en SQL con Query

En la sección anterior, aprendimos a establecer columnas de identidad ( SQL Identity ) con SQL Server Management Studio. Sin embargo, también puede establecer una columna de identidad con la ayuda de una consulta SQL.

Uno puede hacer esto con la ayuda de la propiedad SQL IDENTITY (). Usamos esta función en la instrucción CREATE TABLE cuando creamos una nueva tabla. Especificamos esta función en la columna que queremos establecer como columna de identidad. Puede seguir los pasos a continuación para establecer una columna de identidad en la tabla de SQL Server:

Sintaxis para crear una tabla nueva.

Especifique la propiedad SQL IDENTITY () en la instrucción CREATE TABLE.

sintaxis para crear tabla

CREATE TABLE <Nombre_Tabla>(identity column> int IDENTITY(1,1),
<column 2> <data type>,
<column 3> <data type>,
.
.
<column n> <data type>
)
  • Una vez creada la tabla, intente insertar algunos valores.
  • Veamos un ejemplo también.
  • Hemos creado una tabla IdentityTable en la que hemos definido la columna EmpleadoID como columna de identidad.
USE[master]
GO
DROP TABLE IF EXISTS dbo.TableIdentity
CREATE TABLE dbo.TableIdentity(
EmpleadoID int IDENTITY(1,1),
Nombre nchar(20),
Departamento nchar(10))
  • Definimos 1 como valor Inicial y 1 como valor de incremento.
  • Ahora insertaremos algunos valores en la tabla.
USE [master]
GO
INSERT INTO dbo.TablaIdentity(Nombre, Departamento)
VALUES('Ramon', 'Finanzas'),
	  ('Dolfy', 'Ventas'),
	  ('Pedro', 'Marketing'),
	  ('Ana', 'Ventas')
SELECT * FROM dbo.TablaIdentity
  • Puede observar que no especificamos los valores para la columna EmpleadoID pero aún tiene valores debido a su propiedad de identidad.
  • Además, los valores comenzaron desde 1 y hay un incremento de 1 después de cada registro insertado.

Cómo actualizar o reiniciar la columna con propiedad identidad en SQL Server

En esta sección, aprenderá cómo puede actualizar la columna con propiedad identidad en SQL Server.

Si desea modificar la columna con propiedad identidad, quiere decir una de las dos cosas:

  1. Desea actualizar las propiedades de Identidad.
  2. si considera modificar los datos en la columna de identidad de la tabla

Discutiremos ambos casos uno por uno.

  1. Actualice las propiedades de identidad: puede actualizar las propiedades de identidad mediante la función DBCC CHECKIDENT. Con esta función, actualice el valor inicial. Esto significa que puede decidir nuevamente desde dónde desea comenzar el recuento de valores de identidad. Puedes hacer esto como:
DBCC CHECKIDENT ('tablaName', RESEED, NEW_RESEED_VALUE)
  • Por ejemplo, si tiene una tabla llamada Pedidos y desea dar valores de identidad desde 1000, escribirá la consulta para la tabla como:
DBCC CHECKIDENT ('dbo.Orders', RESEED, 1000)

2.No puede actualizar directamente un valor de columna IDENTIDAD. No hay una manera de hacerlo fácilmente (como a través de una declaración de ACTUALIZACIÓN simple) en SQL Server.

Para modificar un valor con propiedad de IDENTIDAD, básicamente necesitamos usar un par de funciones y configuraciones útiles disponibles para nosotros en SQL Server. En lugar de modificar el dato de la columna, básicamente haremos dos cosas:

  1. Eliminar la fila con el valor de columna incorrecto
  2. Vuelva a insertar la fila y especifique manualmente el valor correcto

Piense en ello como la actualización con dos procesos. Si no podemos actualizar los datos, básicamente nos vemos obligados a eliminar la fila incorrecta y volver a insertar una nueva fila con los datos correctos.

Deja un comentario