Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak utworzyć tabelę w SQL Server za pomocą zapytania

Aby utworzyć tabelę w SQL Server za pomocą zapytania:

  1. W programie SQL Server Management Studio kliknij Nowe zapytanie przycisk na pasku narzędzi
  2. Wpisz lub wklej CREATE TABLE skrypt (przykład poniżej)
  3. Kliknij ! Wykonaj przycisk na pasku narzędzi

Oto przykład:

Skrypt CREATE TABLE

Oto skrypt SQL w powyższym przykładzie:

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

Skrypt wykonuje następujące czynności:

  • tworzy tabelę
  • dodaje 3 kolumny
  • ustawia typ danych
  • określa, że ​​StatusId jest kolumną tożsamości i że wartość pierwszego rekordu będzie wynosić 1, a wartość każdego kolejnego rekordu wzrośnie o 1
  • określa, że ​​dowolna wartość w kolumnie StatusName może mieć maksymalną długość 50
  • określa, że ​​wartości NULL są niedozwolone
  • ustawia domyślną wartość bieżącej daty dla kolumny DateCreated
  • ustawia pole StatusId jako klucz podstawowy

Jest to podstawowy skrypt, który tworzy tylko jedną małą tabelkę. Możesz równie łatwo uruchomić skrypt, który tworzy całą bazę danych, ze wszystkimi jej obiektami, danymi i uprawnieniami za jednym razem.

Poprawa skryptu

Podczas tworzenia obiektów bazy danych dobrą praktyką jest sprawdzenie, czy obiekt już istnieje, czy nie. Zapobiega to występowaniu błędów, gdy skrypt próbuje utworzyć tabelę, która jest już w bazie danych.

Uruchamiaj tylko wtedy, gdy tabela jeszcze nie istnieje

Do powyższego skryptu można dodać następujący wiersz, dzięki czemu skrypt CREATE TABLE będzie działał tylko wtedy, gdy tabela nie istnieje już w bazie danych (lub tabela o tej samej nazwie):

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

Tak więc cały skrypt wyglądałby tak:

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

Wymień tabelę, jeśli już istnieje

Skrypt można również przepisać, aby zastąpić tabelę, jeśli już istnieje. Można to zrobić najpierw, upuszczając istniejącą tabelę, a następnie tworząc nową.

Serwer SQL 2016

W SQL Server 2016 wprowadzono klauzulę DROP IF EXISTS. Tak więc w SQL Server 2016 możemy dodać na początku skryptu następujące elementy:

DROP TABLE IF EXISTS [TaskTracker].[Status]

(TaskTracker to nazwa bazy danych. Status to nazwa tabeli).

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 i wcześniejsze

Jeśli używasz wcześniejszej wersji SQL Server, możesz użyć następujących poleceń, aby usunąć istniejącą tabelę:

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

Tak więc cały skrypt wyglądałby tak:

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

Generowanie skryptu z istniejącej tabeli

Skrypt SQL można wygenerować z istniejącej tabeli za pomocą Eksploratora obiektów w GUI SSMS. Gdy to zrobisz, SQL Server wygeneruje cały kod SQL z tabeli i utworzy skrypt.

Aby to zrobić, po prostu kliknij prawym przyciskiem myszy tabelę i wybierz Tabela skryptów jako... następnie postępuj zgodnie z instrukcjami.

Nie ogranicza się to tylko do tabel – możesz skryptować dowolny obiekt bazy danych przy użyciu tej samej metody.

Jeśli nie masz doświadczenia w tworzeniu skryptów SQL, możesz spróbować utworzyć tabelę za pomocą GUI, a następnie wygenerować skrypt SQL z tabeli.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przykład z życia, kiedy używać OUTER / CROSS APPLY w SQL

  2. Eksportuj zestaw wyników procedury składowanej do programu Excel w programie SSMS

  3. Uzyskiwanie Hibernate i SQL Server do przyjemnej zabawy z VARCHAR i NVARCHAR

  4. SQL Server 2008:jak nadać uprawnienia do nazwy użytkownika?

  5. Jak porównać 2 wiersze z tej samej tabeli (SQL Server)?