No SQL Server, você pode usar o T-SQL
IDENT_INCR()
função para retornar o valor de incremento de uma coluna de identidade. Este é o valor de incremento especificado ao criar a coluna de identidade. Sintaxe
A sintaxe fica assim:
IDENT_INCR ( 'table_or_view' )
A table_or_view argumento é uma expressão que especifica a tabela ou exibição para verificar um valor de incremento de identidade válido.
Exemplo 1 – Uso básico
Aqui está um exemplo de código básico.
SELECT IDENT_INCR('Pets') AS Result;
Resultado:
+----------+ | Result | |----------| | 1 | +----------+
Nesse caso, o valor do incremento de identidade é 1.
Aqui está outra consulta que verifica mais tabelas.
SELECT IDENT_INCR('Pets') AS Pets, IDENT_INCR('BestFriends') AS BestFriends, IDENT_INCR('Cities') AS Cities;
Resultado:
+--------+---------------+----------+ | Pets | BestFriends | Cities | |--------+---------------+----------| | 1 | 10 | 10 | +--------+---------------+----------+
Exemplo 2 – Incluindo o Esquema
Você também pode incluir o esquema no argumento.
SELECT IDENT_INCR('dbo.Pets') AS Result;
Resultado:
+----------+ | Result | |----------| | 1 | +----------+
Exemplo 3 – Verifique todas as tabelas no banco de dados
Aqui está um exemplo de verificação de todas as tabelas no banco de dados para seu valor de semente de identidade.
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 | +----------------+----------------+--------------+
Sobre o valor de retorno
O valor de retorno para
IDENT_INCR()
é numeric(@@MAXPRECISION,0))
. Isso significa que é um tipo de dados numérico com precisão e escala fixas. A precisão depende do servidor. O
@@MAXPRECISION
O argumento retorna o nível usado pelos tipos de dados decimal e numérico conforme definido atualmente no servidor. A precisão especifica o número total máximo de dígitos decimais (inclui os lados esquerdo e direito do ponto decimal). O segundo argumento especifica uma escala de
0
, o que significa que não há dígitos decimais à direita da casa decimal. Você pode executar a seguinte consulta para encontrar o nível de precisão atualmente definido em seu servidor:
SELECT @@MAX_PRECISION AS [Max Precision];
Aqui está o resultado no meu sistema:
+-----------------+ | Max Precision | |-----------------| | 38 | +-----------------+
Criando uma coluna de identidade
Você pode criar uma coluna de identidade usando o
IDENTITY()
propriedade em seu CREATE TABLE
ou ALTER TABLE
demonstração. Outra maneira de criar uma coluna de identidade é o
IDENTITY()
função. Isso permite que você crie uma coluna de identidade ao usar um SELECT INTO
instrução para transferir dados de uma fonte para outra.