Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So erstellen Sie eine Tabelle in SQL Server mithilfe einer Abfrage

So erstellen Sie eine Tabelle in SQL Server mithilfe einer Abfrage:

  1. Klicken Sie im SQL Server Management Studio auf Neue Abfrage Schaltfläche in der Symbolleiste
  2. Geben oder fügen Sie ein CREATE TABLE ein Skript (Beispiel unten)
  3. Klicken Sie auf ! Ausführen Schaltfläche in der Symbolleiste

Hier ist ein Beispiel:

Das CREATE TABLE-Skript

Hier ist das SQL-Skript im obigen Beispiel:

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

Das Skript macht Folgendes:

  • erstellt eine Tabelle
  • fügt 3 Spalten hinzu
  • legt ihren Datentyp fest
  • gibt an, dass die StatusId eine Identitätsspalte ist und dass der Wert des ersten Datensatzes 1 ist und dass der Wert für jeden nachfolgenden Datensatz um 1 erhöht wird
  • gibt an, dass jeder Wert in der StatusName-Spalte eine maximale Länge von 50 haben kann
  • gibt an, dass NULL-Werte nicht erlaubt sind
  • legt einen Standardwert des aktuellen Datums für die DateCreated-Spalte fest
  • legt das StatusId-Feld als Primärschlüssel fest

Dies ist ein einfaches Skript, das nur eine kleine Tabelle erstellt. Sie könnten genauso einfach ein Skript ausführen, das eine ganze Datenbank mit all ihren Objekten, Daten und Berechtigungen auf einmal erstellt.

Verbesserung des Skripts

Beim Erstellen von Datenbankobjekten empfiehlt es sich, zu prüfen, ob das Objekt bereits vorhanden ist oder nicht. Dadurch wird verhindert, dass Fehler auftreten, wenn das Skript versucht, eine Tabelle zu erstellen, die sich bereits in der Datenbank befindet.

Nur ausführen, wenn die Tabelle noch nicht vorhanden ist

Die folgende Zeile könnte dem obigen Skript hinzugefügt werden, damit das CREATE TABLE-Skript nur ausgeführt wird, wenn die Tabelle nicht bereits in der Datenbank existiert (oder eine Tabelle mit demselben Namen):

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

Das gesamte Skript würde also zu:

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

Ersetzen Sie die Tabelle, falls sie bereits existiert

Das Skript könnte auch neu geschrieben werden, um die Tabelle zu ersetzen, falls sie bereits vorhanden ist. Dies kann erreicht werden, indem zuerst die vorhandene Tabelle gelöscht und dann die neue erstellt wird.

SQL-Server 2016

SQL Server 2016 hat die DROP IF EXISTS-Klausel eingeführt. In SQL Server 2016 können wir also am Anfang des Skripts Folgendes hinzufügen:

Tabelle löschen, falls vorhanden [TaskTracker].[Status]

(TaskTracker ist der Name der Datenbank. Status ist der Name der Tabelle).

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 und früher

Wenn Sie eine frühere Version von SQL Server verwenden, können Sie die vorhandene Tabelle folgendermaßen löschen:

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

Das gesamte Skript würde also zu:

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

Generieren eines Skripts aus einer vorhandenen Tabelle

Sie können über den Objekt-Explorer in der SSMS-GUI ein SQL-Skript aus einer vorhandenen Tabelle generieren. Wenn Sie dies tun, generiert SQL Server den gesamten SQL-Code aus der Tabelle und erstellt das Skript.

Klicken Sie dazu einfach mit der rechten Maustaste auf die Tabelle und wählen Sie Skripttabelle als... aus Folgen Sie dann den Anweisungen.

Dies ist nicht nur auf Tabellen beschränkt – Sie können jedes Datenbankobjekt mit derselben Methode skripten.

Wenn Sie neu in der Erstellung von SQL-Skripten sind, können Sie versuchen, eine Tabelle mit der GUI zu erstellen und dann das SQL-Skript aus der Tabelle zu generieren.