Cómo usar SQL Server Identity Insert

Cómo usar SQL Server Identity Insert

Una columna de identidad en SQL Server se refiere a una columna que genera automáticamente un valor numérico único para cada registro insertado. Una columna de identidad es muy útil como clave primaria ya que cada valor es único para cada fila.

En esta guía, comprenderemos cómo usar la propiedad de identidad en el servidor SQL y cómo podemos insertar valores manualmente en una columna de identidad.

Identidad del servidor SQL

La propiedad de identidad en una columna está determinada por el valor inicial de la semilla y el entero de incremento. La sintaxis es como se muestra:

identidad (semilla, incremento);

  1. El parámetro de semilla define el valor del primer registro insertado en la tabla.
  2. El incremento determina por qué valor de la fila anterior se agrega.

Si no se definen los parámetros de semilla e incremento, el servidor SQL de valor predeterminado de 1, 1, respectivamente.

Las declaraciones de consulta de ejemplo ilustran cómo usar la propiedad de identidad de SQL Server:

creadoatabasetempuary_db;
usetempuary_db;
createTableSample_Table (
IdintnotnullIdentity (1,1) Clave principal,
namvarchar (50),
);
InsertInToSample_Table (nombre)
Valores ('Abigail Henderson'),
('Peter Miller'),
('Harris Gonzales'),
('Anne Jenkins'),
('Katherine Patterson');
seleccionar * fromsample_table;

Deberíamos tener una tabla como se muestra:

Observe que la columna ID comienza desde un valor de 1 e incrementa la siguiente fila por 1, según lo definido por la propiedad de identidad.

SQL Server Indentity_insert

Aunque la propiedad de identidad se utiliza para definir una función de generación automática, es posible que desee editar manualmente el valor de una columna de identidad.

Aquí es donde entra en juego el comando identity_insert.

SQL Server habilita Identity_INSERT

Por defecto, SQL Server le impedirá editar manualmente los valores de una columna de identidad. Para usarlo, debe habilitarlo en su tabla objetivo.

Por ejemplo, si intenta editar manualmente los valores en la columna ID de la tabla de muestra anterior, obtendrá un error como se muestra:

InsertInToSample_Table (id) valores (7);

Use la siguiente sintaxis de comando para activar o desactivar la función Identity_insert:

setIdentity_inserttable_nameon/off;

Por ejemplo, para activar Identity_INSERT para el sample_table creado anteriormente, podemos hacer:

setIdentity_insertsample_tableon;

Una vez habilitado, puede insertar valores en la columna de identidad:

InsertInToSample_Table (id) valores (7);
[/c] c
La consulta debería devolver el éxito:
[CC Width = "100%" Height = "100%" Escaped = "True" theme = "Blackboard" Nowrap = "0"]
(1 fila afectada)

PISTA: Solo puede configurar Identity_insert en una sola tabla por sesión. Si intenta habilitar la inserción de identidad en otra tabla en la misma sesión, el servidor SQL devolverá un error como se muestra:

Conclusión

La propiedad de identidad de SQL Server permite definir una columna que genere automérticamente valores numéricos basados ​​en los valores de semilla e incremento. Sin embargo, como se discutió en este tutorial, puede usar la función Identity Insertar para editar manualmente los valores de una columna de identidad. Esperamos que hayas encontrado este artículo útil. Consulte otros artículos de Sugerencia de Linux para obtener más consejos e información.