Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Retornar a Semente Original de uma Coluna de Identidade no SQL Server


No SQL Server, você pode usar o T-SQL IDENT_SEED() função para retornar a semente original de uma coluna de identidade. Este é o valor de semente original especificado ao criar a coluna de identidade.


Sintaxe


A sintaxe fica assim:
IDENT_SEED ( 'table_or_view' )

A table_or_view argumento é uma expressão que especifica a tabela ou exibição para verificar um valor de semente de identidade.

Exemplo 1 – Uso básico


Aqui está um exemplo de código básico.
SELECT IDENT_SEED('Pets') AS Result;

Resultado:
+----------+
| Result   |
|----------|
| 1        |
+----------+

Nesse caso, o valor da semente de identidade é 1.

Aqui está outra consulta que verifica mais tabelas.
SELECT 
  IDENT_SEED('Pets') AS Pets,
  IDENT_SEED('BestFriends') AS BestFriends,
  IDENT_SEED('Cities') AS Cities;

Resultado:
+--------+---------------+----------+
| Pets   | BestFriends   | Cities   |
|--------+---------------+----------|
| 1      | 101           | 150      |
+--------+---------------+----------+

Cada uma dessas tabelas foi criada com um valor de identidade de semente diferente.

Exemplo 2 – Incluindo o Esquema


Você também pode incluir o esquema no argumento.
SELECT IDENT_SEED('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_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            |
+----------------+----------------+--------------+

Sobre o valor de retorno


O valor de retorno para IDENT_SEED() é 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.