sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan opretter du en tabel i SQL Server ved hjælp af en forespørgsel

Sådan opretter du en tabel i SQL Server ved hjælp af en forespørgsel:

  1. I SQL Server Management Studio skal du klikke på Ny forespørgsel knappen på værktøjslinjen
  2. Skriv eller indsæt en CREATE TABLE script (eksempel nedenfor)
  3. Klik på ! Udfør knappen på værktøjslinjen

Her er et eksempel:

CREATE TABLE Scriptet

Her er SQL-scriptet i ovenstående eksempel:

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ÆR NØGLE KLUSTERED) ( før> 

Scriptet gør følgende:

  • opretter en tabel
  • tilføjer 3 kolonner
  • indstiller deres datatype
  • specificerer, at StatusId er en identitetskolonne, og at værdien af ​​den første post vil være 1, og at værdien for hver efterfølgende post vil stige med 1
  • specificerer, at enhver værdi i Statusnavn-kolonnen kan have en maksimal længde på 50
  • specificerer, at NULL-værdier ikke er tilladt
  • indstiller en standardværdi for den aktuelle dato for DateCreated-kolonnen
  • indstiller feltet StatusId som den primære nøgle

Dette er et grundlæggende script, der kun opretter en lille tabel. Du kan lige så nemt køre et script, der opretter en hel database med alle dens objekter og data og tilladelser på én gang.

Forbedring af scriptet

Når du opretter databaseobjekter, er det god praksis at kontrollere, om objektet allerede eksisterer eller ej. Dette forhindrer, at der opstår fejl, når scriptet forsøger at oprette en tabel, der allerede er i databasen.

Kør kun, hvis tabellen ikke allerede eksisterer

Følgende linje kunne føjes til ovenstående script, så CREATE TABLE scriptet kun kører, hvis tabellen ikke allerede findes i databasen (eller en tabel med samme navn):

HVIS IKKE FINDER (VÆLG * FRA sysobjects WHERE name='Status' OG xtype='U')

Så hele scriptet ville blive:

HVIS IKKE FINDER (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 BEGRÆNSNING DF_Status_DateCreated DEFAULT (getdate()),CONSTRAINT PK_Status PRIMÆR NØGLE KLUSTERET (StatusId))

Erstat tabellen, hvis den allerede eksisterer

Scriptet kan også omskrives for at erstatte tabellen, hvis den allerede eksisterer. Dette kan gøres ved først at droppe den eksisterende tabel og derefter oprette den nye.

SQL Server 2016

SQL Server 2016 introducerede DROP IF EXISTS-klausulen. Så i SQL Server 2016 kan vi tilføje følgende til toppen af ​​scriptet:

DROP TABEL HVIS FINDER [TaskTracker].[Status]

(TaskTracker er navnet på databasen. Status er navnet på tabellen).

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) BEGRÆNSNING PK_Status PRIMÆR NØGLE KLUSTERET (StatusId))

SQL Server 2014 og tidligere

Hvis du bruger en tidligere version af SQL Server, kan du bruge følgende til at slette den eksisterende tabel:

HVIS FINNES (VÆLG * FRA sysobjects WHERE name='Status' OG xtype='U') SLIP TABELstatus

Så hele scriptet ville blive:

HVIS FINNES (VÆLG * FRA sysobjects WHERE name='Status' OG xtype='U')DROP TABLE StatusCREATE TABEL Status(StatusId int IDENTITY(1,1) NOT NULL,StatusName varchar(50) NOT NULL,DateCreated datetime IKKE NULL BEGRÆNSNING DF_Status_DateCreated DEFAULT (getdate()), CONSTRAINT PK_Status PRIMÆR NØGLE KLUSTERET (StatusId))

Generering af et script fra en eksisterende tabel

Du kan generere et SQL-script fra en eksisterende tabel via Object Explorer i SSMS GUI. Når du gør dette, genererer SQL Server al SQL-koden fra tabellen og opretter scriptet.

For at gøre dette skal du blot højreklikke på tabellen og vælge Scripttabel som... følg derefter vejledningen.

Dette er ikke kun begrænset til tabeller – du kan scripte ethvert databaseobjekt ved hjælp af samme metode.

Hvis du er ny til at oprette SQL-scripts, kan du prøve at oprette en tabel ved hjælp af GUI og derefter generere SQL-scriptet fra tabellen.


  1. Hvor stor indflydelse kan et datatypevalg have?

  2. REPLACE() Funktion i Oracle

  3. Sådan aktiverer du Change Data Capture (CDC) på hele tabellen ELLER Aktiverer CDC på bordet med liste over kolonner i SQL Server

  4. Sådan finder du alle tabellerne med Identity Column i SQL Server Database - SQL Server / T-SQL Tutorial Del 45