En SQL Server, puede usar T-SQL IDENT_SEED()
para devolver la semilla original de una columna de identidad. Este es el valor semilla original especificado al crear la columna de identidad.
Sintaxis
La sintaxis es así:
IDENT_SEED ( 'table_or_view' )
La tabla_o_vista argumento es una expresión que especifica la tabla o vista para verificar un valor inicial de identidad.
Ejemplo 1:uso básico
Aquí hay un ejemplo de código básico.
SELECT IDENT_SEED('Pets') AS Result;
Resultado:
+----------+ | Result | |----------| | 1 | +----------+
En este caso, el valor inicial de identidad es 1.
Aquí hay otra consulta que verifica más tablas.
SELECT IDENT_SEED('Pets') AS Pets, IDENT_SEED('BestFriends') AS BestFriends, IDENT_SEED('Cities') AS Cities;
Resultado:
+--------+---------------+----------+ | Pets | BestFriends | Cities | |--------+---------------+----------| | 1 | 101 | 150 | +--------+---------------+----------+
Cada una de estas tablas se creó con un valor de identidad inicial diferente.
Ejemplo 2:inclusión del esquema
También puede incluir el esquema en el argumento.
SELECT IDENT_SEED('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_SEED(TABLE_SCHEMA + '.' + TABLE_NAME) AS IDENT_SEED FROM INFORMATION_SCHEMA.TABLES WHERE IDENT_SEED(TABLE_SCHEMA + '.' + TABLE_NAME) IS NOT NULL;
Resultado:
+----------------+----------------+--------------+ | TABLE_SCHEMA | TABLE_NAME | IDENT_SEED | |----------------+----------------+--------------| | dbo | ConstraintTest | 1 | | dbo | Event | 1 | | dbo | Scoreboard | 1 | | dbo | Pets | 1 | | dbo | BestFriends | 101 | | dbo | Cities | 150 | | dbo | Colors | 1 | +----------------+----------------+--------------+
Acerca del valor devuelto
El valor de retorno para IDENT_SEED()
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.