sql >> Database >  >> RDS >> Sqlserver

Een tabel maken in SQL Server met behulp van een query

Een tabel maken in SQL Server met behulp van een query:

  1. Klik in de SQL Server Management Studio op de Nieuwe query knop op de werkbalk
  2. Typ of plak een CREATE TABLE script (voorbeeld hieronder)
  3. Klik op de ! Uitvoeren knop op de werkbalk

Hier is een voorbeeld:

Het CREATE TABLE-script

Dit is het SQL-script in het bovenstaande voorbeeld:

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

Het script doet het volgende:

  • maakt een tabel
  • voegt 3 kolommen toe
  • stelt hun gegevenstype in
  • geeft aan dat de StatusId een identiteitskolom is en dat de waarde van de eerste record 1 is en dat de waarde voor elke volgende record met 1 wordt verhoogd
  • geeft aan dat elke waarde in de kolom StatusName een maximale lengte van 50 mag hebben
  • geeft aan dat NULL-waarden niet zijn toegestaan
  • stelt een standaardwaarde van de huidige datum in voor de kolom DateCreated
  • stelt het veld StatusId in als de primaire sleutel

Dit is een basisscript dat slechts één kleine tabel maakt. U kunt net zo goed een script uitvoeren dat een hele database maakt, met alle objecten en gegevens en machtigingen in één keer.

Het script verbeteren

Bij het maken van database-objecten is het een goede gewoonte om te controleren of het object al bestaat of niet. Dit voorkomt dat er fouten optreden wanneer het script een tabel probeert te maken die al in de database staat.

Alleen uitvoeren als de tabel nog niet bestaat

De volgende regel kan aan het bovenstaande script worden toegevoegd, zodat het CREATE TABLE-script alleen wordt uitgevoerd als de tabel nog niet bestaat in de database (of een tabel met dezelfde naam):

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

Dus het hele script zou worden:

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

Vervang de tabel als deze al bestaat

Het script kan ook worden herschreven om de tabel te vervangen als deze al bestaat. Dit kan worden gedaan door eerst de bestaande tabel te verwijderen en vervolgens de nieuwe te maken.

SQL Server 2016

SQL Server 2016 heeft de DROP IF EXISTS-clausule geïntroduceerd. Dus in SQL Server 2016 kunnen we het volgende bovenaan het script toevoegen:

DROP TABLE IF EXISTS [TaskTracker].[Status]

(TaskTracker is de naam van de database. Status is de naam van de tabel).

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 en eerder

Als u een eerdere versie van SQL Server gebruikt, kunt u het volgende gebruiken om de bestaande tabel te verwijderen:

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

Dus het hele script zou worden:

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

Een script genereren uit een bestaande tabel

U kunt een SQL-script genereren vanuit een bestaande tabel via de Objectverkenner in de SSMS GUI. Wanneer u dit doet, genereert SQL Server alle SQL-code uit de tabel en maakt het script.

Klik hiervoor met de rechtermuisknop op de tabel en selecteer Scripttabel als... volg dan de aanwijzingen.

Dit is niet alleen beperkt tot tabellen - u kunt elk databaseobject met dezelfde methode scripten.

Als het maken van SQL-scripts nieuw voor u is, kunt u proberen een tabel te maken met behulp van de GUI en vervolgens het SQL-script uit de tabel te genereren.


  1. Sp_help_schedule gebruiken in SQL Server

  2. 40 vragen die u moet weten over R12.2

  3. Een overzicht van cluster-naar-clusterreplicatie

  4. Hoe haal je twee opeenvolgende cijfers uit een tekstveld in MySQL?