> For the complete documentation index, see [llms.txt](https://rdornel.gitbook.io/material/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://rdornel.gitbook.io/material/linguagem-sql/insert.md).

# INSERT

* Comando utilizando para popular as tabelas no banco.

O comando `INSERT` também possui algumas variações que devem ser respeitadas para evitar problemas. O primeiro exemplo abaixo mostra a inserção na tabela `Clientes`. Repare que logo abaixo tem um fragmento da criação da tabela `Clientes` mostando que o campo `ClienteCodigo` é `IDENTITY`, portanto não deve ser informado no momento do `INSERT`.

```
INSERT Clientes (ClienteNome) VALUES ('Nome do Cliente');

CREATE TABLE Clientes
  (
  ClienteCodigo int IDENTITY CONSTRAINT PK_CLIENTES PRIMARY KEY...
```

Quando vamos fazer o `INSERT` em uma tabela que não possui o campo `IDENTITY` passamos o valor desejado, mesmo que o campo seja `PRIMARY KEY`.

```
INSERT Clientes (ClienteCodigo, ClienteNome) VALUES (1, 'Nome do Cliente');

CREATE TABLE Clientes
  (
  ClienteCodigo int CONSTRAINT PK_CLIENTES PRIMARY KEY...

INSERT Clientes (colunas) VALUES (valores);

INSERT INTO Clientes SELECT * FROM ...
```
