top of page

Tabelas no SQL Server

  • Foto do escritor: Amanda Nascimento
    Amanda Nascimento
  • 3 de ago. de 2023
  • 15 min de leitura

Atualizado: 7 de ago.


Antes de tudo, é necessário criar um banco de dados dentro de um servidor. Se você ainda não sabe como fazer isso, clique aqui para aprender mais sobre criação de bancos de dados.

Uma tabela é uma estrutura que armazena dados em linhas e colunas.


  • Cada coluna (atributo) representa um campo com um tipo de dado específico (como texto, número ou data).

  • Cada linha representa um registro único.

As tabelas são os principais elementos de um banco de dados relacional, permitindo a organização estruturada e eficiente das informações.


Para saber mais sobre chaves clique aqui

Para consultar sobre chave primária em tabelas existentes, clique aqui


Ao criar uma tabela, você deve definir:

  • Nome da tabela: identificador único dentro do banco de dados.

  • Colunas: cada uma com nome, tipo de dado e, opcionalmente, restrições (como NOT NULL, UNIQUE, etc.).

  • Chave primária: uma ou mais colunas que identificam de forma única cada registro na tabela.



Entidade e Atributo


Durante a modelagem de dados, é fundamental entender dois conceitos-chave: entidade e atributo.


  • Entidade: representa um objeto do mundo real sobre o qual desejamos armazenar informações. Cada entidade costuma se tornar uma tabela no banco de dados.


    Exemplos de entidades:


    • Cliente

    • Produto

    • Pedido

    • Funcionário


  • Atributo: representa uma característica da entidade. Em bancos de dados, os atributos são representados pelas colunas da tabela.


Exemplo:


Para a entidade Cliente, os atributos podem ser:

  • Nome

  • CPF

  • Data de Nascimento

  • E-mail


Ou seja, ao criar uma tabela chamada Clientes, cada coluna representa um atributo dessa entidade.

 

--Entidade clientes

CREATE TABLE Clientes (

    ClienteID INT PRIMARY KEY,     -- atributo identificador

    Nome NVARCHAR(100),            -- atributo

    CPF CHAR(11),                  -- atributo

    Email NVARCHAR(100),          -- atributo

    DataNascimento DATE           -- atributo

);


Entidades podem se relacionar entre si. Por exemplo, um cliente pode fazer vários pedidos. Isso nos leva ao conceito de relacionamento entre entidades, que é modelado usando chaves estrangeiras (foreign keys) que vimos acima.



CREATE TABLE Pedidos (

    PedidoID INT PRIMARY KEY,

    ClienteID INT FOREIGN KEY REFERENCES Clientes(ClienteID),

    DataPedido DATETIME,

    Total DECIMAL(10, 2)

);


Neste exemplo, a coluna ClienteID da tabela Pedidos é uma chave estrangeira que referencia a coluna ClienteID da tabela Clientes.


Para saber mais sobre modelagem de dados, clique aqui!




Criando uma tabela simples, passo a passo


No script abaixo, substituia dbo. caso tenha criado um banco de dados ou um schema. Exemplo: [nomebanco].[nomeschema].[nometabela]



CREATE TABLE dbo.TESTE (

 

ree

    ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED,

    NOME VARCHAR(100),

    IDADE INT,

    NASCIMENTO DATE

);

ree


Criando uma tabela simples com IF


Inserindo uma condicional com o IF para que se a tabela já existir, é para excluir primeiro para depois criá-la novamente:


IF(OBJECT_ID('dbo.TESTE') IS NOT NULL)DROP TABLE dbo.TESTE


ree


Inserindo uma tabela com dados como nome, idade e data de nascimento:

Para todos os campos que não podem ser vazio, podemos colocar o NOT NULL


Exemplo: NOME VARCHAR(100) NOT NULL,

ree

IF(OBJECT_ID('dbo.TESTE2') IS NOT NULL)

    DROP TABLE dbo.TESTE2;

 

CREATE TABLE dbo.TESTE2 (

 

    ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED,

    NOME VARCHAR(100),

    IDADE INT,

    NASCIMENTO DATE

);

 


INSERT INTO dbo.TESTE2 (NOME, IDADE, NASCIMENTO)

VALUES ('Amanda', 32, '2023-01-01'), ('Matheus', 10, '2023-01-01'), 

('Joao', 19, '2023-01-01'), ('Guilherme', 33, '2023-01-01'), ('Dara', 26, '2023-01-01');





Criando uma tabela com chave primária (Primary Key)


A chave primária é o principal identificador exclusivo de uma tabela. Cada valor deve ser único e não nulo.


CREATE TABLE Clientes (

    ClienteID INT PRIMARY KEY,

    Nome NVARCHAR(100) NOT NULL,

    Email NVARCHAR(100) UNIQUE,

    DataCadastro DATETIME DEFAULT GETDATE()

);


Descrição das regras de criação das colunas:

  • ClienteID: Identificador único do cliente, definido como chave primária.

  • Nome: Nome do cliente, não permite valores nulos.

  • Email: Endereço de e-mail do cliente, deve ser único.

  • DataCadastro: Data e hora do cadastro, com valor padrão igual à data atual





Criando uma tabela com chave composta


É uma chave formada por mais de uma coluna, geralmente quando nenhuma coluna isoladamente pode garantir unicidade.


CREATE TABLE Matriculas (

    AlunoID INT,

    CursoID INT,

    DataMatricula DATE,

    PRIMARY KEY (AlunoID, CursoID)

);



Criando uma tabela com chave Estrangeira (Foreign Key)


Uma chave estrangeira (FOREIGN KEY) é usada para criar um relacionamento entre duas tabelas.

Ela garante a integridade referencial, ou seja, evita que uma tabela referencie registros inexistentes em outra.


A tabela que contém a chave primária é chamada de tabela pai.

A tabela que contém a chave estrangeira é chamada de tabela filha.


Em resumo, é um relaciona tabelas, criando uma dependência entre dados.


INSERT INTO dCREATE TABLE dbo.Estados (

  EstadoID INT PRIMARY KEY,

  Nome VARCHAR(50)

);

 

CREATE TABLE dbo.Cidades (

  CidadeID INT PRIMARY KEY,

  Nome VARCHAR(50),

  EstadoID INT,

  FOREIGN KEY (EstadoID) REFERENCES dbo.Estados(EstadoID)

);

 

-----------------------------------

-- Inserindo o estado primeiro

INSERT INTO dbo.Estados (EstadoID, Nome) VALUES (1, 'SP');

 

-- Depois a cidade, associando ao estado

INSERT INTO dbo.Cidades (CidadeID, Nome, EstadoID) VALUES (101, 'São Paulo', 1);

---Se você tentar inserir uma cidade com EstadoID = 99 (que não existe), o SQL Server impedirá.




Criando uma tabela com Super Chave (Super Key)


Qualquer conjunto de colunas que identifica de forma única um registro. Pode conter atributos a mais que a chave primária.


CREATE TABLE Clientes (

    ClienteID INT PRIMARY KEY,

    CPF CHAR(11),

    Nome NVARCHAR(100),

    UNIQUE (Nome, CPF) -- Super Chave possível

);



Criando uma tabela com Chave candidata (Candidate Key)



São colunas ou conjuntos de colunas que podem servir como chave primária.


CREATE TABLE Usuarios (

    UsuarioID INT PRIMARY KEY,          -- Chave primária escolhida

    Email NVARCHAR(100) UNIQUE,         -- Chave candidata

    CPF CHAR(11) UNIQUE                 -- Outra chave candidata

);



Criando uma tabela com Chave Única (Unique Key)


Garante que os valores sejam únicos, mas permite valores nulos (diferente da chave primária).


CREATE TABLE Funcionarios (

    FuncionarioID INT PRIMARY KEY,

    Email NVARCHAR(100) UNIQUE,         -- Pode ser nulo, mas se houver valor, deve ser único

    Telefone VARCHAR(15) UNIQUE

);



Criando uma tabela com Chave Alternativa (Alternate Key)


É qualquer chave candidata que não foi escolhida como a chave primária.


CREATE TABLE Cidadãos (

    ID INT PRIMARY KEY,     -- Chave primária escolhida

    CPF CHAR(11) UNIQUE     -- Chave alternativa

);




Criando uma tabela com Chave Natural (Natural Key)


Chave que já existe nos dados do mundo real. Ex: CPF, CNPJ, matrícula, etc.


CREATE TABLE ClientesNaturais (

    CPF CHAR(11) PRIMARY KEY,  -- Chave natural

    Nome NVARCHAR(100)

);




Criando uma tabela com Chave de Substituição (Surrogate Key)


É uma chave artificial criada quando a natural não é confiável ou não existe. Normalmente é um número incremental (ID).


CREATE TABLE ClientesSubstituidos (

    ClienteID INT IDENTITY(1,1) PRIMARY KEY,  -- Surrogate Key

    CPF CHAR(11),

    Nome NVARCHAR(100)

);



Criando uma tabela com Chave Secundária


Não identifica registros de forma única, mas é usada para recuperação de dados, via índices. É comum em índices não clusterizados.


CREATE TABLE ProdutosIndexados (

    ProdutoID INT PRIMARY KEY,

    Categoria NVARCHAR(50),

    Nome NVARCHAR(100)

);


-- Índice secundário na coluna Categoria

CREATE NONCLUSTERED INDEX idx_Categoria

ON ProdutosIndexados (Categoria);







Criando uma tabela com restrição


Para garantir que os valores inseridos em uma coluna atendam a uma condição específica:


CREATE TABLE Funcionarios (

    FuncionarioID INT PRIMARY KEY,

    Nome NVARCHAR(100),

    Salario DECIMAL(10,2) CHECK (Salario >= 0)

);




Alterar tipo de dados em uma tabela


alter table funcionarios

alter column telefone varchar(10)




Adicionando coluna em uma tabela


💠 Exemplo 1

ALTER TABLE Clientes ADD Telefone NVARCHAR(20);


💠 Exemplo 2

ALTER TABLE TCARGOS

ADD datacriacao DATE NULL;

 

💠 Exemplo 3

alter table funcionarios

add telefone varchar(20)


Criar uma coluna com valor default


ALTER TABLE NomeDaTabela

ADD NovaColuna VARCHAR(50) DEFAULT 'Valor Padrão';




Adicionando ou alterando dados em uma coluna



Atualizar um valor específico em uma linha.

Atualiza a cidade do cliente com id_cliente = 101


UPDATE clientes

SET cidade = 'Belo Horizonte'

WHERE id_cliente = 101;


Atualizar múltiplas colunas

Atualiza o preço e o estoque do produto de ID 5


UPDATE produtos

SET preco = 29.90,

    estoque = 100

WHERE id_produto = 5;



Atualizar todos os registros da tabela

Define o valor da coluna ativo como 0 para todos os funcionários.


UPDATE funcionarios

SET ativo = 0;


Atualizar com base em outra tabela (usando JOIN)

Aplica um aumento de 10% no salário de funcionários do TI.


UPDATE f

SET f.salario = f.salario * 1.10

FROM funcionarios f

JOIN departamentos d ON f.id_departamento = d.id_departamento

WHERE d.nome = 'TI';



Atualizar com base em uma subquery

 Aumenta o preço dos produtos da categoria "Eletrônicos" em 15%.

UPDATE produtos

SET preco = preco * 1.15

WHERE id_categoria = (

  SELECT id_categoria FROM categorias WHERE nome = 'Eletrônicos'

);


Usar CASE dentro de um UPDATE

Atualiza o status dos pedidos com base na data de entrega.


UPDATE pedidos

SET status = CASE 

    WHEN data_entrega < GETDATE() THEN 'Entregue'

    WHEN data_entrega IS NULL THEN 'Pendente'

    ELSE 'Em trânsito'

END;




🔹Exemplo 1

UPDATE FUNCO

SET NOME_CARGO = UPPER(REPLACE(REPLACE(REPLACE(RTRIM(NOME_CARGO), 'ç', 'c'), 'á', 'a'), 'é', 'e'));

 

🔹Exemplo 2

UPDATE TCARGOS

SET datacriacao = '2023-07-13'

WHERE cargos = 5;

 

 🔹Exemplo 3

UPDATE psecao

SET rua = 'AV REI PELE'

WHERE codigo LIKE '0.039%'

AND SECAODESATIVADA = '0'



🔹Exemplo 4

update funcionarios set telefone= '11999999999' where funcionarioid=1

update funcionarios set telefone= '11988888888' where funcionarioid=2



Alterar nome de uma coluna


EXEC sp_rename 'TCARGOS.codigo_cargo', 'CARGOS', 'COLUMN';



Excluindo uma tabela

💠 Exemplo 1

DROP TABLE Clientes

ree

💠 Exemplo 2

DROP TABLE CORPORE_DESENV.dbo.TCARGOS;



Apagando uma coluna de uma tabela


ALTER TABLE NomeDaTabela

DROP COLUMN NomeDaColuna;




Apagando dados de uma coluna


UPDATE NomeDaTabela

SET NomeDaColuna = NULL;




Mascarar (codificar) os dados de uma coluna específica


Exemplo: mascarar parcialmente uma coluna de e-mails.


UPDATE NomeDaTabela

SET Email = CONCAT(LEFT(Email, 2), '*****@***.com');


Outro exemplo para criptografar dados (não reversível, usando HASHBYTES):


-- Primeiro, converta para VARBINARY, depois salve como VARCHAR

UPDATE NomeDaTabela

SET ColunaCodificada = CONVERT(VARCHAR(100), HASHBYTES('SHA2_256', ColunaOriginal), 2);

 


🔹 HASHBYTES gera um hash da informação. Ideal para senhas, não pode ser revertido.

🔹 Use SHA2_256 ou SHA1 para algoritmos seguros.




Criando uma tabela com indexador numérico


ree

 

IF OBJECT_ID('dbo.Numbers') IS NOT NULL DROP TABLE dbo.Numbers;

 

CREATE TABLE dbo.Numbers (Number INT PRIMARY KEY);

 

WITH Tally (N) AS (

 

    SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) - 1

    FROM sys.objects s1 CROSS JOIN sys.objects s2

)

 

INSERT INTO dbo.Numbers (Number)

SELECT N

FROM Tally

WHERE N <= 10000; -- Ajuste conforme necessário

 

 

select * from Numbers


Resultado:

ree



Alterando nome de uma tabela

 

De FUNCO para TCARGOS


EXEC sp_rename 'FUNCO', 'TCARGOS';

SELECT * FROM TCARGOS




Consultar nomes das tabelas existentes e detalhes




💠 Exemplo 1

USE NOMEDOSEUBANCO

 

SELECT name, 

       FORMAT(create_date, 'dd/MM/yyyy') as create_date, 

       FORMAT(modify_date, 'dd/MM/yyyy') as modify_date,

         modify_date

 

FROM sys.tables

ORDER BY name


ree


💠 Exemplo 2 (mais completo)

Lista o nome database, schema, data de criação e última data de modificação


USE ods;

 

SELECT 

    DB_NAME() AS database_name,                -- Nome do banco atual

    s.name AS schema_name,                     -- Nome do schema

    t.name AS table_name,                      -- Nome da tabela

    FORMAT(t.create_date, 'dd/MM/yyyy') AS create_date, 

    FORMAT(t.modify_date, 'dd/MM/yyyy') AS modify_date,

    t.modify_date

 

FROM sys.tables t

INNER JOIN sys.schemas s ON t.schema_id = s.schema_id  -- Join com schema

 

ORDER BY t.name;


Obter quantidade de linhas de uma tabela


 SELECT COUNT(*) FROM basetri


ree


Criar tabela temporária


São tabelas criadas temporariamente, visíveis somente durante a sessão atual (ou transação, dependendo do escopo), e são armazenadas fisicamente no banco tempdb.



CREATE TABLE #ClientesTemporarios (

    Nome VARCHAR(100),

    Cidade VARCHAR(50)

);

 

SELECT Nome, Cidade

FROM Clientes

WHERE Estado = 'SP';

 

SELECT * FROM #ClientesTemporarios;



Tipo

Prefixo

Escopo

Visível para outras sessões?

Exemplo

Tabela temporária local

#

Sessão atual (conexão)

❌ Não

CREATE TABLE #Temp

Tabela temporária global

##

Todas as sessões (até encerrar a última que usa)

✅ Sim

CREATE TABLE ##TempGlobal



Insert INTO - Inserindo dados a partir de uma outra tabela


Primeiro definimos o esqueleto com CREATE TABLE, e depois preenchemos com dados usando INSERT INTO.


🟠Insert INTO com select Copiando dados da tabela de origem para uma nova tabela que já existe a estrutura:


INSERT INTO dbo.NovaTabela (Col1, Col2, Col3)

SELECT ColA, ColB, ColC

FROM dbo.TabelaOrigem

WHERE Condicao = 'Valor';



🟠Insert INTO com values

Inserindo dados "avulsos" em uma tabela existente.


INSERT INTO dbo.TESTE2 (NOME, IDADE, NASCIMENTO)

VALUES ('Pedro', 28, '2025‑08‑07');

 

Se você omitir os nomes das colunas, o SQL Server vai assumir que os valores estão na mesma ordem das colunas da tabela.


⚠️ Requisitos para usar sem colunas:

  1. Você deve passar um valor para todas as colunas obrigatórias (NOT NULL sem valor padrão).

  2. A ordem dos valores precisa seguir exatamente a ordem das colunas na tabela.

  3. Se a tabela tiver colunas IDENTITY, elas não devem ser incluídas (a menos que você habilite IDENTITY_INSERT, o que não é comum).


    ----exemplo do tipo de dados da tabela

    CREATE TABLE [NomeBanco].[NomeSchema].[NomeTabela] (

        NOME NVARCHAR(100),

        IDADE INT,

        NASCIMENTO DATE

    );

     

    ----exemplo do insert into sem especificar o nome das colunas

    INSERT INTO [NomeBanco].[NomeSchema].[NomeTabela]

    VALUES ('Carlos', 45, '1980-12-03');



    Outro exemplo:


    ----exemplo do tipo de dados da tabela que tem um campo IDENTITY

    CREATE TABLE [NomeBanco].[NomeSchema].[NomeTabela] (

        id INT IDENTITY(1,1) PRIMARY KEY,

        cod_boleto VARCHAR(100),            -- Código de solicitação da API

        origem VARCHAR(50),              -- origem se o boleto é taxa mensal ou boleto extra de cobrança em atraso

        valor DECIMAL(10,2),                -- Valor da cobrança

        vencimento DATE,                    -- Data de vencimento do boleto

        cpf VARCHAR(14),                    -- CPF do pagador (formato com ou sem pontos e traço)

        apto VARCHAR(5),            -- Complemento (número do apartamento)

        data_emissao DATETIME DEFAULT GETDATE()  -- Data e hora da emissão do boleto

    );

     

     

    ----exemplo do insert into sem especificar o nome das colunas

    INSERT INTO [gilvieira].[STAGE].[histBoleto]

    VALUES (

        '382a40c3-ff43', -- cod_boleto

        'Boleto extra ref 052025',         -- origem

        513.20,                                -- valor

        '2025-08-11',                        -- vencimento (DATA, com aspas)

        '00078538701',                   -- cpf

        '54b',                                 -- apto

        '2025-08-06 18:57:18.297'   -- data_emissao (DATETIME, com aspas)

    );


    Observações:

    • Como a tabela tem um campo IDENTITY, você não precisa (nem deve) passar valor para ele.

    • Caso você quisesse forçar a inserção de um valor específico no id (não é o caso aqui), teria que ativar temporariamente:

      SET IDENTITY_INSERT [gilvieira].[STAGE].[histBoleto] ON;

      -- insert com valor para a coluna id

      SET IDENTITY_INSERT [gilvieira].[STAGE].[histBoleto] OFF;


🟠Insert INTO com MERGE


Inserção, atualização e exclusão a partir de uma condição


Primeiro definimos o esqueleto com CREATE TABLE, e depois preenchemos com dados usando INSERT INTO.


Para saber mais detalhes sobre a instrução MERGE, clique aqui!


MERGE INTO dbo.TESTE2 AS target

USING (VALUES ('Ana', 30, '2024‑05‑15')) AS source (NOME, IDADE, NASCIMENTO)

ON target.NOME = source.NOME

WHEN MATCHED THEN

    UPDATE SET IDADE = source.IDADE, NASCIMENTO = source.NASCIMENTO

WHEN NOT MATCHED THEN

    INSERT (NOME, IDADE, NASCIMENTO)

    VALUES (source.NOME, source.IDADE, source.NASCIMENTO);



🟠Insert INTO com Output


O OUTPUT permite retornar os valores inseridos, atualizados ou excluídos, imediatamente após a execução de um comando INSERT, UPDATE ou DELETE.

Durante um INSERT, você pode acessar a pseudotabela inserted, que contém os registros que acabaram de ser inseridos.


É muito útil quando você precisa capturar valores gerados automaticamente, como IDs de colunas IDENTITY, ou simplesmente acompanhar os dados afetados.

Recomendado para quando você deseja capturar o ID de um registro recém-inserido, principalmente em sistemas com relacionamento entre tabelas.


INSERT INTO dbo.TesteExtra (Nome, Cidade)

OUTPUT inserted.ID, inserted.Nome, inserted.Cidade

VALUES ('Lucas', 'Rio de Janeiro');



🟠Insert INTO com CASE


Quando você deseja inserir um valor condicional, com base em alguma lógica simples, diretamente no VALUES. O CASE funciona como um IF dentro do SQL: ele avalia uma condição e retorna um valor correspondente.


INSERT INTO dbo.TesteExtra (Nome, Cidade)

VALUES ('Mariana', CASE WHEN 1 = 1 THEN 'Belo Horizonte' ELSE 'Desconhecida' END);


Se a condição for verdadeira, insere "Belo Horizonte", senão "Desconhecida".



🟠Insert INTO com variáveis


Muito usado em procedures, triggers ou scripts de automação, ao criar scripts dinâmicos ou armazenar valores temporários, variáveis são úteis para reaproveitar dados e tornar o código mais legível e flexível. Você declara variáveis com DECLARE e atribui valores com =. Depois pode usá-las no INSERT


DECLARE @nome NVARCHAR(100) = 'Eduardo';

DECLARE @cidade NVARCHAR(50) = 'Curitiba';

 

INSERT INTO dbo.TesteExtra (Nome, Cidade)

VALUES (@nome, @cidade);



🟠Insert INTO com WHILE


Você usa um WHILE como um laço de repetição que executa os comandos dentro do BEGIN ... END enquanto a condição for verdadeira.


DECLARE @i INT = 1;

 

WHILE @i <= 3

BEGIN

  INSERT INTO dbo.TesteExtra (Nome, Cidade)

  VALUES (CONCAT('Usuario', @i), 'Automatizado');

  SET @i += 1;

END;



Obter colunas da tabela e tipo de dado de cada coluna


Precisaremos agora criar uma procedure, clique aqui para saber mais.

Esta procedure não é uma procedure nativa do SQL Server, por este motivo, precisamos criá-la.


CREATE PROCEDURE sp_custom_columns

    @table_name NVARCHAR(128)

AS

BEGIN

    SET NOCOUNT ON;

 

    SELECT

        TABLE_CATALOG AS table_qualifier,

        TABLE_SCHEMA AS table_owner,

        TABLE_NAME AS table_name,

        COLUMN_NAME AS column_name,

        COLUMNPROPERTY(OBJECT_ID(TABLE_SCHEMA + '.' + TABLE_NAME), COLUMN_NAME, 'SystemTypeID') AS data_type,

        DATA_TYPE AS type_name,

        COALESCE(NUMERIC_PRECISION, CHARACTER_MAXIMUM_LENGTH, DATETIME_PRECISION) AS precision,

        CHARACTER_MAXIMUM_LENGTH AS length,

        NUMERIC_SCALE AS scale,

        CASE 

            WHEN DATA_TYPE IN ('float', 'real') THEN 2  -- Float uses base 2

            WHEN DATA_TYPE IN ('decimal', 'numeric', 'int', 'smallint', 'tinyint', 'bigint') THEN 10

            ELSE NULL

        END AS radix

    FROM INFORMATION_SCHEMA.COLUMNS

    WHERE TABLE_NAME = @table_name

    ORDER BY ORDINAL_POSITION;

END;

 

 

--para usar, execute a procedure com o nome da sua tabela

EXEC sp_custom_columns 'nomeDaTabelaaqui';


ree

 


🔍 Explicação das colunas:

Coluna

Fonte / cálculo

table_qualifier

Nome do banco (TABLE_CATALOG)

table_owner

Schema (TABLE_SCHEMA)

table_name

Nome da tabela

column_name

Nome da coluna

data_type

Usamos COLUMNPROPERTY(..., 'SystemTypeID') para simular o DATA_TYPE do sys.columns

type_name

Nome do tipo de dados (DATA_TYPE)

precision

NUMERIC_PRECISION ou CHARACTER_MAXIMUM_LENGTH

length

Tamanho máximo de caracteres (para nvarchar, etc.)

scale

Casas decimais, se aplicável

radix

10 para inteiros/decimais, 2 para float/real



Tipo de dados







Criar Tabela com RecCreatedBy e RecModifiedBy



Registrar quem criou ou modificou um registro (e quando isso ocorreu) é essencial para rastreabilidade e auditabilidade em sistemas. Nas tabelas, campos como RecCreatedBy, RecModifiedBy e suas respectivas datas (RecCreatedDate, RecModifiedDate) permitem monitorar mudanças feitas por usuários ou processos.


Para saber mais sobre, clique aqui!


 CREATE TABLE funcionarios (

  ID INT IDENTITY(1,1) PRIMARY KEY,

  nome VARCHAR(50),

  idade INT,

  RecCreatedBy VARCHAR(50),

  RecModifiedBy VARCHAR(50),

  RecCreatedDate DATETIME DEFAULT GETDATE(),

  RecModifiedDate DATETIME

);





© 2017-2025  Criado e desenvolvido por Amanda Nascimento

  • Discord
  • GitHub
  • youtube
  • LinkedIn Amanda
bottom of page