Vad händer när man kör Alter Table?

Permalänk
Medlem

Vad händer när man kör Alter Table?

Kan man skada mycket via att köra Alter Table? Jag har kört Blitz-script på SQL-server och får tipset att köra Alter Table vilket jag aldrig använt tidigare. Men jag förstår inte vad det kommandot gör. Har försökt hitta information.

Permalänk
Medlem

https://www.w3schools.com/sql/sql_alter.asp
"The ALTER TABLE statement is used to add, delete, or modify columns in an existing table.

The ALTER TABLE statement is also used to add and drop various constraints on an existing table."

Visa signatur

NZXT H510 Flow MSI B450 Tomahawk MAX
AMD Ryzen 5800X3D RX 7900XTX Kingston Fury 64GB

Permalänk
Medlem

@Pamudas: Ok tack. Men den kan inte ta bort (radera) någon data?

Permalänk
Medlem
Skrivet av BoEl:

@Pamudas: Ok tack. Men den kan inte ta bort (radera) någon data?

Alter table är till för att modifiera tabellens struktur - inte data.

T.ex. om du har en tabell "Användare" med tre kolumner:

Namn, Epost, Lösenord

Men du vill ändra så du även har Telefonnummer, då använder du ALTER TABLE för att modifiera tabellen till att ha fyra kolumner:
Namn, Epost, Lösenord, Telefonnummer

ALTER TABLE Användare ADD Telefonnummer varchar(9);

Visa signatur

NZXT H510 Flow MSI B450 Tomahawk MAX
AMD Ryzen 5800X3D RX 7900XTX Kingston Fury 64GB

Permalänk
Medlem

@Pamudas: Mycket bra beskrivning. Vet du vad dessa gör med tabellen Rsv?

ALTER TABLE [F0001].[dbo].[Rsv] REBUILD;
ALTER TABLE [dbo].[Rsv] ADD CONSTRAINT [PK__Rsv] PRIMARY KEY ( [OrdNo], [OrdLnNo], [SeqNo] ) WITH (FILLFACTOR=100, ONLINE=?, SORT_IN_TEMPDB=?, DATA_COMPRESSION=?);

Permalänk
Medlem
Skrivet av BoEl:

@Pamudas: Ok tack. Men den kan inte ta bort (radera) någon data?

Det kan den absolut göra.
ALTER TABLE kan användas för att ta bort en (eller flera) kolumn(er) i en tabell, och gör man det försvinner vanligtvis all data som fanns i den kolumnen.

Permalänk
Medlem

ALTER TABLE kan förstöra data om man till exempel tar bort en kolumn.

Om du inte förstår applikationen och dess databas (eller SQL verkar det som) så ska du INTE köra något som du får från Blitz i en produktionsdatabas.

Den SQL som du visar upp lägger till en primärnyckel. Vet du vad det innebär? Det innebär bland annat att du inte kan lagra dubletter av kombinationen av värden som ingår i primärnyckeln. Det ser ofarligt ut, men om man inte vet vad appliaktionen förväntar sig så kan det absolut orsaka driftstopp och riktigt jävla jobbiga dataförluster när man försöker skriva poster som inte kan skapas.