Chcete-li vytvořit tabulku na serveru SQL Server pomocí dotazu:
- V SQL Server Management Studio klikněte na Nový dotaz tlačítko na panelu nástrojů
- Zadejte nebo vložte
CREATE TABLE
skript (příklad níže) - 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.