sql >> Databáze >  >> RDS >> Sqlserver

Jak vytvořit tabulku na serveru SQL pomocí dotazu

Chcete-li vytvořit tabulku na serveru SQL Server pomocí dotazu:

  1. V SQL Server Management Studio klikněte na Nový dotaz tlačítko na panelu nástrojů
  2. Zadejte nebo vložte CREATE TABLE skript (příklad níže)
  3. Klikněte na tlačítko ! Provést tlačítko na panelu nástrojů

Zde je příklad:

Skript CREATE TABLE

Zde je skript SQL ve výše uvedeném příkladu:

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 (Status KEY CLUSTER) před> 

Skript provede následující:

  • vytvoří tabulku
  • přidá 3 sloupce
  • nastaví jejich datový typ
  • určuje, že StatusId je sloupec identity a že hodnota prvního záznamu bude 1 a že hodnota každého dalšího záznamu se zvýší o 1
  • určuje, že jakákoli hodnota ve sloupci StatusName může mít maximální délku 50
  • určuje, že hodnoty NULL nejsou povoleny
  • nastaví výchozí hodnotu aktuálního data pro sloupec DateCreated
  • nastaví pole StatusId jako primární klíč

Toto je základní skript, který vytvoří pouze jednu malou tabulku. Stejně snadno můžete spustit skript, který vytvoří celou databázi se všemi jejími objekty, daty a oprávněními najednou.

Vylepšení skriptu

Při vytváření databázových objektů je dobrou praxí zkontrolovat, zda objekt již existuje nebo ne. Tím se zabrání výskytu chyb, když se skript pokusí vytvořit tabulku, která je již v databázi.

Spustit pouze v případě, že tabulka již neexistuje

Do výše uvedeného skriptu lze přidat následující řádek, takže skript CREATE TABLE bude spuštěn pouze v případě, že tabulka již neexistuje v databázi (nebo tabulka se stejným názvem):

POKUD NEEXISTUJE (VYBRAT * Z sysobjects WHERE name='Status' AND xtype='U')

Takže celý skript by se stal:

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 PRIMÁRNÍ KLÍČ SE SLUSTROVANÝ (StatusId))

Nahradit tabulku, pokud již existuje

Skript lze také přepsat, aby nahradil tabulku, pokud již existuje. To lze provést tak, že nejprve zrušíte existující tabulku a poté vytvoříte novou.

SQL Server 2016

SQL Server 2016 zavedl klauzuli DROP IF EXISTS. V SQL Server 2016 tedy můžeme na začátek skriptu přidat následující:

POKUD EXISTUJE TABULKU ZAHOĎTE [TaskTracker].[Stav]

(TaskTracker je název databáze. Status je název tabulky).

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 (get OMEZENÍ PK_Status PRIMÁRNÍ KLÍČ SE SLUSTROVANÝ (StatusId))

SQL Server 2014 a starší

Pokud používáte dřívější verzi SQL Server, můžete existující tabulku zrušit takto:

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

Takže celý skript by se stal:

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 PRIMÁRNÍ KLÍČ SE SLUSTROVANÝ (StatusId))

Generování skriptu z existující tabulky

Skript SQL můžete vygenerovat z existující tabulky pomocí Průzkumníka objektů v GUI SSMS. Když to uděláte, SQL Server vygeneruje veškerý kód SQL z tabulky a vytvoří skript.

Chcete-li to provést, jednoduše klikněte pravým tlačítkem na tabulku a vyberte Tabulku skriptů jako... poté postupujte podle pokynů.

To se neomezuje pouze na tabulky – pomocí stejné metody můžete skriptovat jakýkoli databázový objekt.

Pokud s vytvářením SQL skriptů teprve začínáte, můžete zkusit vytvořit tabulku pomocí GUI a poté vygenerovat SQL skript z tabulky.


  1. Jak přidat offset ve výběrovém dotazu v Oracle 11g?

  2. Bezpečnostní úvahy pro nasazení MariaDB v prostředí hybridního cloudu

  3. Vytvořte spouštěč „místo“ na serveru SQL Server

  4. SQLite Order By