No SQL Server, você pode usar o
IDENTITY()
função para inserir uma coluna de identidade em uma nova tabela. No entanto, esta função não deve ser confundida com o
IDENTITY()
propriedade , que é usado com o CREATE TABLE
e ALTER TABLE
declarações. A
IDENTITY()
função é usado apenas em um SELECT
instrução com um INTO
cláusula de tabela. Assim, você pode usá-lo ao transferir dados de uma tabela para outra, por exemplo. Sintaxe
A sintaxe fica assim:
IDENTITY (data_type [ , seed , increment ] ) AS column_name
O data_type O argumento especifica o tipo de dados da coluna de identidade. Os tipos de dados válidos são quaisquer tipos de dados da categoria de tipo de dados inteiro, exceto bit e decimais .
A semente é o valor usado para a primeira linha carregada na tabela.
O incremento é o valor incremental que é adicionado ao valor de identidade da linha anterior que foi carregada.
O column_name O argumento fornece o nome da coluna de identidade que você deseja criar.
Exemplo 1 – Uso básico
Aqui está um exemplo de código básico.
SELECT IDENTITY(int, 101, 10) AS pet_id, PetName AS pet_name INTO BestFriends FROM Pets;
Isso seleciona dados dos Animais de estimação table e a insere em uma nova tabela chamada BestFriends . A primeira coluna é uma coluna de identidade que eu crio com o
IDENTITY()
função. Neste caso, defino a semente para 101 e o incremento para 10. Chamo essa coluna de pet_id . Eu chamo a segunda coluna pet_name , e eu preencho isso na coluna chamada PetName .
Veja o que os Animais de estimação tabela se parece com:
CREATE TABLE Pets ( PetId int IDENTITY(1,1) PRIMARY KEY, PetName varchar(255) ); INSERT INTO Pets (PetName) VALUES ('Homer'), ('Felix'), ('Ruff'); SELECT * FROM Pet;
Resultado:
+---------+-----------+ | PetId | PetName | |---------+-----------| | 1 | Homer | | 2 | Felix | | 3 | Ruff | +---------+-----------+
E aqui está o que os MelhoresAmigos A tabela se parece após a transferência dos dados:
SELECT * FROM BestFriends;
Resultado:
+----------+------------+ | pet_id | pet_name | |----------+------------| | 101 | Homer | | 111 | Felix | | 121 | Ruff | +----------+------------+
Portanto, os nomes dos animais de estimação permanecem os mesmos, mas a coluna de identidade contém valores diferentes (porque usei
IDENTITY(int, 101, 10)
, comparado a IDENTITY(1,1)
para os animais de estimação tabela).