Denne artikel forklarer SQL tilføj kolonne drift i en eksisterende SQL tabel. Vi vil også undersøge forskellige eksempler på S .l Tilføj kolonne operationer.

Nogle gange vil vi tilføje kolonner i en eksisterende tabel. I eksisterende tabeller har vi muligvis poster i den. Vi ønsker ikke at miste eksisterende data så godt. Under mange omstændigheder kan vi droppe tabellerne og genskabe dem, men det anbefales ikke generelt, især i et produktionsmiljø, da det kan være ødelæggende, da det vedrører data., Vi kan stadig udføre en s .l add-kolonneoperation ved hjælp af Alter Table-kommando, som undgår at skulle droppe tabeller, slette data, selvom det kun er midlertidigt.

syntaks

Vi kan udføre en s .l add kolonne operation på en tabel med følgende transact s .l kommando.,

1
2

ALTER TABLE table_name
TILFØJ column_name column_definition;

Forberede miljø

Vi er nødt til at vælge en Database tabel, og sæt data ind i det.Udfør følgende forespørgsel for at oprette en medarbejder tabel I S .lshackdemo database.Udfør følgende forespørgsel for at indsætte prøvedata i den.,i det følgende skærmbillede kan vi se de eksisterende data i Medarbejdertabellen.

s .l Tilføj kolonneoperation på en eksisterende s .l-tabel

Vi vil tilføje kolonneafdelingen i Medarbejdertabellen. Antag, at vi har mange kolonner i en tabel; vi er nødt til at kontrollere, om der findes en bestemt kolonne i s .l-tabellen eller ej. Hvis den angivne kolonne ikke findes, vil vi oprette den med den relevante datatype.

Vi kan bruge INFORMATION_SCHEMA-visningen til at kontrollere tabeller og deres kolonner i en database., Udfør følgende kode for at få en liste over kolonner, deres datatype i Medarbejdertabellen.

i denne udgang kan vi se Medarbejdertabellen indeholder 4 kolonner.

lad os tilføje en ny kolonneafdeling med følgende Alter Table-kommando.,

1
2

ALTER TABLE Medarbejder
TILFØJ Afdeling Varchar(50)

Udføre denne søgning, og vælg poster fra Medarbejder-tabellen. I det følgende skærmbillede kan vi se på den nye kolonneafdeling. Alle eksisterende poster indeholder en NULL-værdi i denne kolonne.,

tidligere kontrollerede vi alle kolonner i Medarbejdertabellen ved hjælp af INFORMATION_SCHEMA vie.. I den følgende forespørgsel ønsker vi kun at oprette en Afdelingstabel, hvis den ikke findes i Medarbejdertabellen.,

1
2
3
4
5
6
7
8
9
10
11

HVIS der IKKE EKSISTERER
(
VÆLG *
FRA INFORMATION_SCHEMA.,KOLONNER
WHERE TABLE_NAME = ‘Medarbejder’
OG COLUMN_NAME = ‘Afdeling’
)
BEGYND
ALTER TABLE Medarbejder
TILFØJ Afdeling VARCHAR(50);
SLUT;

Vi kan tilføje en kolonne i en eksisterende tabel, hvis det giver NULL-værdier eller har en standard værdi, der er defineret på det., We can try to add Not NULL column in the existing SQL table, but it gives the following error message,

1
2
3
4
5
6
7
8
9
10
11

IF NOT EXISTS
(
SELECT *
FROM INFORMATION_SCHEMA.,KOLONNER
WHERE TABLE_NAME = ‘Medarbejder’
OG COLUMN_NAME = ‘Telefon’
)
BEGYND
ALTER TABLE Medarbejder
TILFØJ Telefon VARCHAR(15) Not NULL;
SLUT;

SQL tilføj kolonne operation til en eksisterende SQL-tabel med en default-værdi

Antag at vi ønsker at tilføje kolonnen IsActive kolonne i Medarbejder-tabellen., Vi kan have følgende værdier i denne kolonne

  • Værdi 1: Medarbejderen er aktiv
  • Værdi 0: Medarbejderen er ikke aktiv

Som standard, der alle eksisterende og nye medarbejder skal have Værdien 1 i IsActive kolonne. Vi kan angive en værdi ved hjælp af standardbegrænsning.,

If we try to add a column with a Not NULL value in the existing SQL table, we get following error message,

1
2
3
4
5
6
7
8
9
10
11

IF NOT EXISTS
(
SELECT *
FROM INFORMATION_SCHEMA.,KOLONNER
WHERE TABLE_NAME = ‘Medarbejder’
OG COLUMN_NAME = ‘Telefon’
)
BEGYND
ALTER TABLE Medarbejder
TILFØJ IsActive bit STANDARD(1);
SLUT;

Udføre denne søgning, og Vælg poster fra en tabel. For eksisterende poster opdaterer den ikke standardværdierne.

Hvis vi indsætter en ny post i denne tabel, får den standardværdi i henhold til følgende skærmbillede.,

SQL tilføj kolonne operation til en eksisterende SQL-tabel med en id-kolonne

I SQL Server, vi bruger Identitet funktionen til at definere en standard og auto increment værdi for hver ny række. Vi kan også tilføje en identitetskolonne til den eksisterende s .l-tabel. Lad os oprette en ny tabel Employee_ne.uden en identitet kolonne.

når tabellen er der, kan vi tilføje en identitetskolonne med følgende forespørgsel.,

1
2
3
4
5
6
7
8
9
10
11

HVIS der IKKE EKSISTERER
(
VÆLG *
FRA INFORMATION_SCHEMA.,KOLONNER
WHERE TABLE_NAME = ‘Employee_new’
OG COLUMN_NAME = ‘ID’
)
BEGYND
ALTER TABLE Employee_new
TILFØJ ID INT IDENTITET(1,1) NOT NULL
SLUT;

Vi har skabt Identiteten kolonne i en tabel, uden nogen registrering i det. Lad os droppe bordet og genskabe det. Indsæt et par poster med følgende forespørgsel.

Vi har data i Employee_ne.tabellen. Lad os tilføje en identitet kolonne med Alter table kommando.,

1
2
3
4
5
6
7
8
9
10
11

HVIS der IKKE EKSISTERER
(
VÆLG *
FRA INFORMATION_SCHEMA.,KOLONNER
WHERE TABLE_NAME = ‘Employee_new’
OG COLUMN_NAME = ‘ID’
)
BEGYND
ALTER TABLE Employee_new
TILFØJ ID INT IDENTITET(1,1) NOT NULL
SLUT;

I det følgende skærmbillede, vi kan se med det samme og opdaterer eksisterende registreringer.

Flere SQL-tilføj kolonne operationer for en eksisterende SQL-tabel med en id-kolonne

Vi måske nødt til at tilføje flere kolonner til en eksisterende SQL tabel., Vi kan gøre det inden for den samme Alter table-kommando.

i den følgende forespørgsel tilføjede vi to kolonner postnummer og StateCode i en enkelt Alter Table-kommando. Vi skal angive alle kolonner, der skal tilføjes i et lignende format.,

1
2
3
4

ALTER TABLE Employee_new
ADD ZipCode INT NULL,
StateCode INT NULL;
GO

We can get details of all columns and their properties using sp_help command.,

1
sp_help ‘Employee_new’

SQL tilføj kolonne operation til en eksisterende SQL-tabel og designer i SSMS

I tidligere eksempler, vi har brugt t-SQL til at tilføje kolonner i den eksisterende tabel. Vi er måske ikke bekendt med at skrive t-s .l-kode. Vi kan også bruge SSMS GUI til at tilføje en kolonne.,højreklik på bordet og klik på Design.

det åbner en borddesigner. Vi kan se alle eksisterende kolonner, deres datatyper, standardværdier og andre egenskaber for en specificeret tabel i en tabeldesigner

Angiv et kolonnenavn og vælg datatyper fra rullemenuen. Vi kan tilføje flere kolonner i dette med passende datatyper.

Når du er færdig, skal du gemme og afslutte borddesigner i SSMS., Hvis du forsøger at lukke det uden at gemme ændringer, får vi også en advarselsmeddelelse.

Klik på Ja for at gemme ny kolonne i den eksisterende tabel. Vi kan enten køre en Select-sætning for at bekræfte den nye kolonne eller bruge sp_help-kommandoen til at liste alle kolonner og deres egenskaber.

1
sp_help ‘Medarbejder.,’

I det følgende skærmbillede, kan vi se en ny kolonne i Medarbejder-tabellen.

Konklusion

I denne artikel, vi undersøgt SQL tilføj kolonne operationer for at tilføje en ny kolonne til en eksisterende SQL tabel. Vi kan bruge både GUI og transact s .l-metoden til at gøre det. Jeg håber du fandt denne artikel nyttig. Du kan give feedback eller kommentarer i kommentarfeltet nedenfor.,

  • Forfatter
  • Seneste Indlæg
Som en MCSA certificeret Microsoft Certified Trainer i Gurgaon, Indien, med 13 års erfaring, Rajendra arbejder for en række store virksomheder med fokus på optimering, overvågning, høj tilgængelighed og disaster recovery strategier og implementering., Han er forfatter af hundredvis af autoritative artikler på SQL Server, Azure, MySQL, Linux, Power BI, Performance tuning, AWS/Amazon RDS, Git, og relaterede teknologier, som er blevet set af mere end 10m læsere til dato.
Han er skaberen af en af de største gratis online samlinger af artikler om et enkelt emne, med hans 50-del serie om SQL Server Altid På Tilgængelighed Grupper. Baseret på hans bidrag til S .l Server-samfundet er han blevet anerkendt med forskellige priser, herunder den prestigefyldte “årets bedste forfatter” kontinuerligt i 2020 og 2021 på s .lshack.,
Raj er altid interesseret i nye udfordringer, så hvis du har brug for rådgivning om ethvert emne, der er dækket i hans skrifter, kan han kontaktes på rajendra.gupta16@Gmail.,com
Vis alle indlæg af Rajendra Gupta

Seneste indlæg af Rajendra Gupta (se alle)
  • Udfører mindre og større version opgraderinger til AWS RDS SQL Server – januar 29, 2021
  • Implementering AWS RDS-PostgreSQL tilfælde – januar 27, 2021
  • overfør dine on-premises SQL-databaser til at AWS RDS SQL Server ved hjælp af AWS DMS – 25 januar 2021