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

Como criar uma tabela no SQL Server usando uma consulta


Para criar uma tabela no SQL Server usando uma consulta:
  1. No SQL Server Management Studio, clique em Nova consulta botão na barra de ferramentas
  2. Digite ou cole um CREATE TABLE script (exemplo abaixo)
  3. 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.