Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come creare una tabella in SQL Server utilizzando una query

Per creare una tabella in SQL Server utilizzando una query:

  1. In SQL Server Management Studio, fai clic su Nuova query pulsante sulla barra degli strumenti
  2. Digita o incolla un CREATE TABLE script (esempio sotto)
  3. Fai clic su ! Esegui pulsante sulla barra degli strumenti

Ecco un esempio:

Lo script CREATE TABLE 

Ecco lo script SQL nell'esempio sopra:

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)
)

Lo script esegue le seguenti operazioni:

  • crea una tabella
  • aggiunge 3 colonne
  • imposta il tipo di dati
  • specifica che StatusId è una colonna di identità e che il valore del primo record sarà 1 e che il valore di ogni record successivo aumenterà di 1
  • specifica che qualsiasi valore nella colonna StatusName può avere una lunghezza massima di 50
  • specifica che i valori NULL non sono consentiti
  • imposta un valore predefinito della data corrente per la colonna DateCreated
  • imposta il campo StatusId come chiave primaria

Questo è uno script di base che crea solo una piccola tabella. Potresti altrettanto facilmente eseguire uno script che crea un intero database, con tutti i suoi oggetti, dati e autorizzazioni tutto in una volta.

Miglioramento del copione

Quando si creano oggetti di database, è buona norma verificare se l'oggetto esiste già o meno. Ciò impedisce che si verifichino errori quando lo script tenta di creare una tabella che è già nel database.

Esegui solo se la tabella non esiste già

La seguente riga può essere aggiunta allo script precedente, in modo che lo script CREATE TABLE venga eseguito solo se la tabella non esiste già nel database (o una tabella con lo stesso nome):

IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='Status' AND xtype='U')

Quindi l'intero script diventerebbe:

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)
)

Sostituisci la tabella se esiste già

Lo script potrebbe anche essere riscritto per sostituire la tabella se esiste già. Questo può essere fatto prima, eliminando la tabella esistente, quindi creando quella nuova.

SQL Server 2016

SQL Server 2016 ha introdotto la clausola DROP IF EXISTS. Quindi, in SQL Server 2016, possiamo aggiungere quanto segue all'inizio dello script:

DROP TABLE IF EXISTS [TaskTracker].[Status]

(TaskTracker è il nome del database. Status è il nome della tabella).

DROP TABLE IF EXISTS [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 versioni precedenti

Se utilizzi una versione precedente di SQL Server, puoi utilizzare quanto segue per eliminare la tabella esistente:

IF EXISTS (SELECT * FROM sysobjects WHERE name='Status' AND xtype='U')
DROP TABLE Status

Quindi l'intero script diventerebbe:

IF EXISTS (SELECT * FROM sysobjects WHERE name='Status' AND xtype='U')
DROP TABLE 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)
)

Generazione di uno script da una tabella esistente

È possibile generare uno script SQL da una tabella esistente tramite Esplora oggetti nella GUI di SSMS. Quando si esegue questa operazione, SQL Server genera tutto il codice SQL dalla tabella e crea lo script.

Per fare ciò, fai semplicemente clic con il pulsante destro del mouse sulla tabella e seleziona Tabella script come... quindi segui le istruzioni.

Questo non è solo limitato alle tabelle:puoi eseguire lo script di qualsiasi oggetto di database utilizzando lo stesso metodo.

Se non conosci la creazione di script SQL, puoi provare a creare una tabella utilizzando la GUI, quindi generare lo script SQL dalla tabella.