En SQL Server, puede usar T-SQL IDENT_INCR()
función para devolver el valor de incremento de una columna de identidad. Este es el valor de incremento especificado al crear la columna de identidad.
Sintaxis
La sintaxis es así:
IDENT_INCR ( 'table_or_view' )
La tabla_o_vista argumento es una expresión que especifica la tabla o vista para verificar un valor de incremento de identidad válido.
Ejemplo 1:uso básico
Aquí hay un ejemplo de código básico.
SELECT IDENT_INCR('Pets') AS Result;
Resultado:
+----------+ | Result | |----------| | 1 | +----------+
En este caso, el valor del incremento de identidad es 1.
Aquí hay otra consulta que verifica más tablas.
SELECT IDENT_INCR('Pets') AS Pets, IDENT_INCR('BestFriends') AS BestFriends, IDENT_INCR('Cities') AS Cities;
Resultado:
+--------+---------------+----------+ | Pets | BestFriends | Cities | |--------+---------------+----------| | 1 | 10 | 10 | +--------+---------------+----------+
Ejemplo 2:inclusión del esquema
También puede incluir el esquema en el argumento.
SELECT IDENT_INCR('dbo.Pets') AS Result;
Resultado:
+----------+ | Result | |----------| | 1 | +----------+
Ejemplo 3:comprobar todas las tablas de la base de datos
Este es un ejemplo de verificación de todas las tablas en la base de datos para su valor inicial de identidad.
SELECT TABLE_SCHEMA, TABLE_NAME, IDENT_INCR(TABLE_SCHEMA + '.' + TABLE_NAME) AS IDENT_INCR FROM INFORMATION_SCHEMA.TABLES WHERE IDENT_INCR(TABLE_SCHEMA + '.' + TABLE_NAME) IS NOT NULL;
Resultado:
+----------------+----------------+--------------+ | TABLE_SCHEMA | TABLE_NAME | IDENT_INCR | |----------------+----------------+--------------| | dbo | ConstraintTest | 1 | | dbo | Event | 1 | | dbo | Scoreboard | 1 | | dbo | Pets | 1 | | dbo | BestFriends | 10 | | dbo | Cities | 10 | | dbo | Colors | 1 | +----------------+----------------+--------------+
Acerca del valor de retorno
El valor de retorno para IDENT_INCR()
es numeric(@@MAXPRECISION,0))
. Esto significa que es un tipo de dato numérico con una precisión y escala fijas.
La precisión depende del servidor. El @@MAXPRECISION
El argumento devuelve el nivel utilizado por los tipos de datos numéricos y decimales tal como se establece actualmente en el servidor. La precisión especifica el número total máximo de dígitos decimales (incluye los del lado izquierdo y derecho del punto decimal).
El segundo argumento especifica una escala de 0
, lo que significa que no hay dígitos decimales a la derecha del lugar decimal.
Puede ejecutar la siguiente consulta para encontrar el nivel de precisión establecido actualmente en su servidor:
SELECT @@MAX_PRECISION AS [Max Precision];
Aquí está el resultado en mi sistema:
+-----------------+ | Max Precision | |-----------------| | 38 | +-----------------+
Crear una columna de identidad
Puede crear una columna de identidad usando IDENTITY()
propiedad en su CREATE TABLE
o ALTER TABLE
declaración.
Otra forma de crear una columna de identidad es IDENTITY()
función. Esto le permite crear una columna de identidad cuando usa un SELECT INTO
declaración para transferir datos de una fuente a otra.