Para criar uma tabela no SQL Server usando uma consulta:
- No SQL Server Management Studio, clique em Nova consulta botão na barra de ferramentas
- Digite ou cole um
CREATE TABLE
script (exemplo abaixo) - Clique no ! Executar botão na barra de ferramentas
Veja um exemplo:
O script CREATE TABLE
Aqui está o script SQL no exemplo acima:
CREATE TABLE Status(StatusId int IDENTITY(1,1) NOT NULL,StatusName varchar(50) NOT NULL,DateCreated datetime NOT NULL CONSTRAINT DF_Status_DateCreated DEFAULT (getdate()),CONSTRAINT PK_Status PRIMARY KEY CLUSTERED (StatusId))
O script faz o seguinte:
- cria uma tabela
- adiciona 3 colunas
- define seu tipo de dados
- especifica que o StatusId é uma coluna de identidade e que o valor do primeiro registro será 1, e que o valor de cada registro subsequente será incrementado em 1
- especifica que qualquer valor na coluna StatusName pode ter um comprimento máximo de 50
- especifica que valores NULL não são permitidos
- define um valor padrão da data atual para a coluna DateCreated
- define o campo StatusId como a chave primária
Este é um script básico que cria apenas uma pequena tabela. Você pode facilmente executar um script que cria um banco de dados inteiro, com todos os seus objetos, dados e permissões de uma só vez.
Melhorando o script
Ao criar objetos de banco de dados, é uma boa prática verificar se o objeto já existe ou não. Isso evita que ocorram erros quando o script tenta criar uma tabela que já está no banco de dados.
Executar apenas se a tabela não existir
A linha a seguir poderia ser adicionada ao script acima, para que o script CREATE TABLE só seja executado se a tabela ainda não existir no banco de dados (ou uma tabela com o mesmo nome):
IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='Status' AND xtype='U')
Assim, todo o script se tornaria:
IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='Status' AND xtype='U')CREATE TABLE Status(StatusId int IDENTITY(1,1) NOT NULL,StatusName varchar(50) NOT NULL,DateCreated datetime NOT NULL CONSTRAINT DF_Status_DateCreated DEFAULT (getdate()),CONSTRAINT PK_Status PRIMARY KEY CLUSTERED (StatusId))
Substitua a tabela se ela já existir
O script também pode ser reescrito para substituir a tabela, se ela já existir. Isso pode ser feito primeiro, descartando a tabela existente e, em seguida, criando a nova.
SQL Server 2016
O SQL Server 2016 introduziu a cláusula DROP IF EXISTS. Portanto, no SQL Server 2016, podemos adicionar o seguinte à parte superior do script:
DROP TABLE SE EXISTE [TaskTracker].[Status]
(TaskTracker é o nome do banco de dados. Status é o nome da tabela).
DROP TABLE SE EXISTE [TaskTracker].[Status]CREATE TABLE Status(StatusId int IDENTITY(1,1) NOT NULL,StatusName varchar(50) NOT NULL,DateCreated datetime NOT NULL CONSTRAINT DF_Status_DateCreated DEFAULT (getdate()), CONSTRAINT PK_Status PRIMARY KEY CLUSTERED (StatusId))
SQL Server 2014 e anteriores
Se estiver usando uma versão anterior do SQL Server, você pode usar o seguinte para descartar a tabela existente:
IF EXISTS (SELECT * FROM sysobjects WHERE name='Status' AND xtype='U') DROP TABLE Status
Assim, todo o script se tornaria:
IF EXISTS (SELECT * FROM sysobjects WHERE name='Status' AND xtype='U')DROP TABLE StatusCREATE TABLE Status(StatusId int IDENTITY(1,1) NOT NULL,StatusName varchar(50) NOT NULL,DateCreated datetime NOT NULL CONSTRAINT DF_Status_DateCreated DEFAULT (getdate()),CONSTRAINT PK_Status PRIMARY KEY CLUSTERED (StatusId))
Gerando um script a partir de uma tabela existente
Você pode gerar um script SQL de uma tabela existente por meio do Pesquisador de Objetos na GUI do SSMS. Ao fazer isso, o SQL Server gera todo o código SQL da tabela e cria o script.
Para fazer isso, basta clicar com o botão direito do mouse na tabela e selecionar Script table as... em seguida, siga as instruções.
Isso não se limita apenas a tabelas – você pode criar scripts de qualquer objeto de banco de dados usando o mesmo método.
Se você é novo na criação de scripts SQL, pode tentar criar uma tabela usando a GUI e gerar o script SQL a partir da tabela.