SQL Server-database: Opprett, endre, slett og gjenopprett

⚡ Smart oppsummering

SQL Server-databaser er containere som inneholder tabeller, visninger, lagrede prosedyrer og andre objekter. Opprette, endre, sletteping, og gjenoppretting av en database kan gjøres via SQL Server Management Studio eller med Transact-SQL-setninger.

  • 🗄️ Database: En SQL Server-database lagrer tabeller, visninger, prosedyrer og funksjoner i én organisert, sammenkoblet beholder.
  • 🧩 System vs. bruker: Systemdatabaser (master, msdb, model, tempdb, resource) installeres automatisk; brukerdatabaser opprettes av deg.
  • 🖱️ Skape: Legg til en database via dialogboksen Ny database i Objektutforskeren eller med CREATE DATABASE-setningen.
  • ✏️ alter: Gi en database nytt navn eller endre filene og alternativene ved hjelp av ENDR DATABASE eller Gi nytt navn-menyen.
  • 🗑️ Miste: Fjern en brukerdatabase med DROP DATABASE eller slettealternativet; systemdatabaser kan ikke slettes.
  • 💾 Restaurere: Gjenoppbygg en database fra en .bak-sikkerhetskopifil ved hjelp av RESTORE DATABASE-kommandoen.

Opprett, endre, slett og gjenopprett SQL Server-database

Hva er database?

En database er en samling av objekter som f.eks. tabeller, visninger, lagrede prosedyrer, utløsere og funksjoner. I SQL Server, en database er det organiserte hjemmet der alle disse relaterte objektene er lagret og sammenkoblet.

Tenk på noen eksempler fra det virkelige liv:

  • En bokhylle er der bøker oppbevares.
  • Et hjem er der vi bor.
  • En parkeringsplass er der kjøretøy parkeres, og slike eksempler er utallige.

På samme måte er en database et slags hjem for alle tabellene, visningene og lagrede prosedyrene våre. Teknisk sett lagrer en database data på en velorganisert måte for enkel tilgang og gjenfinning. I SQL Server finnes det to typer databaser:

  • Systemdatabaser: Disse opprettes automatisk når du installerer SQL Server. De spiller en avgjørende rolle i serveren, spesielt for å sikre at databaseobjekter kjører riktig. Eksempler på SQL Server-systemdatabaser inkluderer master, msdb, model, tempdb og resource.
  • Brukerdatabaser: Disse er opprettet av databasebrukere som deg, som har fått tilgang til å opprette databaser.

Regler for å opprette en database

Først må du kjenne til de grunnleggende reglene for å opprette en ny database:

  • Databasenavn må være unike i en forekomst av SQL Server.
  • Databasenavn kan være på maksimalt 128 tegn.
  • CREATE DATABASE-setningen må kjøres i auto-commit-modus.

Bildet nedenfor viser de to tilgjengelige metodene for å opprette en database i SQL Server.

To måter å opprette en SQL Server-database på: Management Studio og Transact-SQL

Det finnes to måter å opprette en database i SQL Server:

Hvordan lage en database i SQL Server Management Studio

Her er en trinnvis prosess for å opprette en database i SQL Server Management Studio:

Trinn 1) Høyreklikk på «Database» i «Objektutforsker»-vinduet, og velg deretter «Ny database».

Høyreklikkmenyen med alternativet Ny database vises nedenfor.

Høyreklikkmenyen på databasenoden i Objektutforsker med Ny database valgt

Trinn 2) Skjermbildet «Ny database» vises. Skriv inn et «Databasenavn». Kolonnen «Logisk navn» fylles automatisk ut med:

  • Edu – Filtype: Raddata og filgruppe: PRIMÆR
  • Edu_log – Filtype: LOG og filgruppe: 'Ikke aktuelt'

Dialogboksen Ny database med databasenavnet og de logiske filene vises nedenfor.

Ny databasedialog som viser Edu-databasenavnet og Edu- og Edu_log-logiske filer

Her:

  • A) Edu (Filtype: Raddata, Filgruppe: PRIMÆR) er .mdf-datafilen.
  • B) Edu_log (Filtype: LOG, Filgruppe: 'Ikke aktuelt') er .ldf-loggfilen.

Trinn 3) (Valgfritt) For mer komplekse innstillinger kan du gå til sidene «Alternativer» og «Filgrupper». På nybegynnernivå er det tilstrekkelig å opprette databasen fra fanen Generelt.

Sidene Alternativer og Filgrupper vises nedenfor.

Nye sider for databasealternativer og filgrupper for avanserte innstillinger

Trinn 4) Klikk på «Legg til» (OK-knappen) for å opprette databasen.

Knappen som bekrefter opprettelsen er uthevet nedenfor.

OK-knappen i dialogboksen Ny database som oppretter Edu-databasen

Resultat: «Edu»-databasen opprettes. Du kan utvide databasen «Edu», som vil inneholde tabeller, visninger og så videre. Disse er i utgangspunktet tomme inntil du oppretter nye tabeller, visninger osv.

Objektutforsker som viser den nyopprettede Edu-databasen med tomme mapper

Se kildesøket: Du kan se kildespørringen til den nyopprettede «Edu»-databasen. Naviger slik: Høyreklikk på databasenavnet > Skriptdatabase som > OPPRETT til > Nytt spørreredigeringsvindu.

Skriptdatabase som OPPRETT til ny hurtigmeny i spørreredigeringsvinduet

Spørringsvindu: Det genererte CREATE-skriptet åpnes i et nytt spørrevindu, som vist nedenfor.

Spørreredigeringsvindu som viser det automatisk genererte CREATE DATABASE-skriptet for Edu

Lag skript:

USE [master]
GO

CREATE DATABASE [Edu]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'Edu', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL_MS\MSSQL\DATA\Edu.mdf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 65536KB )
 LOG ON 
( NAME = N'Edu_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL_MS\MSSQL\DATA\Edu_log.ldf' , SIZE = 8192KB , MAXSIZE = 2048GB , FILEGROWTH = 65536KB )

Opprett database med T-SQL

En annen metode er å skrive en T-SQL-spørring for å opprette en database og deretter kjøre den. La oss se på den enkleste T-SQL-spørringen for databaseoppretting.

Syntaks:

CREATE DATABASE <Database_name>

Spørsmål:

CREATE DATABASE [Edu_TSQL_file]

Klikk på «Utfør» for å kjøre spørringen, som vist nedenfor.

Utfør-knappen i SSMS-verktøylinjen som brukes til å kjøre CREATE DATABASE-spørringen

Resultat: Du kan se Edu_TSQL_filen som er opprettet i SQL Object Explorer.

Objektutforsker som viser Edu_TSQL_file-databasen som er opprettet med Transact-SQL

La oss nå se på hvordan man oppretter en database med eksplisitte .mdf- og .ldf-filer. Her kan du oppgi filplasseringen som en eksplisitt del av spørringen.

Syntaks:

CREATE DATABASE database_name   
[ CONTAINMENT = { NONE | PARTIAL } ]  
[ ON   
      [ PRIMARY ] <filespec> [ ,...n ]   
      [ , <filegroup> [ ,...n ] ]   
      [ LOG ON <filespec> [ ,...n ] ]   
];

Spørsmål:

CREATE DATABASE [Edu_TSQL_file]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'Edu_TSQL_file', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL_MS\MSSQL\DATA\Edu_TSQL_file.mdf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 65536KB )
 LOG ON 
( NAME = N'Edu_TSQL_file_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL_MS\MSSQL\DATA\Edu_TSQL_file_log.ldf' , SIZE = 8192KB , MAXSIZE = 2048GB , FILEGROWTH = 65536KB )

Databasen som er opprettet med dens eksplisitte data og loggfiler vises i Object Explorer, som vist nedenfor.

Objektutforsker som viser Edu_TSQL_file-databasen opprettet med eksplisitte .mdf- og .ldf-filer

Hvordan endre databasen

I likhet med CREATE DATABASE-spørringen kan du også endre en database. Du kan gi databasen nytt navn, endre en filplassering eller innstilling og mer.

Grunnleggende regler for å endre en database:

  • ALTER DATABASE-setningen må kjøres i auto-commit-modus.
  • ALTER DATABASE er ikke tillatt i en eksplisitt eller implisitt transaksjon.

Det finnes to måter å endre en database i SQL Server:

  • SQL Server Management Studio
  • Transaksjoner SQL

Hvordan endre database i SQL Server Management Studio

Nedenfor finner du trinnene for å endre en database i SQL Server Management Studio. La oss prøve å endre navnet på den forhåndsopprettede databasen vår, «Edu». Den forhåndsopprettede Edu-databasen vises nedenfor i Object Explorer.

Forhåndsopprettet Edu-database valgt i Object Explorer-databaselisten

Trinn 1) Gi databasen nytt navn. Høyreklikk på databasenavnet og klikk på «Gi nytt navn».

Høyreklikk på kontekstmenyen i Edu-databasen med alternativet Gi nytt navn

Trinn 2) Databasenavnet kan redigeres. Skriv inn det nye navnet og trykk Enter.

Redigerbart Edu-databasenavnfelt klart for et nytt navn

Resultat: Databasen er nå omdøpt fra «Edu» til «Edu_Alter».

Objektutforsker som viser databasen som er omdøpt fra Edu til Edu_Alter

Endre database med Transact-SQL

La oss nå endre en database ved hjelp av T-SQL.

Syntaks:

ALTER DATABASE <Databse_name>              
MODIFY NAME = <New Name>

Spørsmål:

ALTER DATABASE Edu_TSQL
MODIFY NAME = Edu_TSQL_Alter;

Kjør søket ovenfor ved å klikke på "Utfør".

Resultat: Databasen er nå omdøpt fra «Edu_TSQL» til «Edu_TSQL_Alter», som vist nedenfor.

Objektutforsker som viser databasen som er omdøpt til Edu_TSQL_Alter etter ALTER DATABASE

Generell syntaks: Den fullstendige ALTER DATABASE-syntaksen støtter mange alternativer, inkludert navneendring, sortering, filalternativer og kompatibilitetsnivå.

ALTER DATABASE { database_name  | CURRENT }  
{   MODIFY NAME = new_database_name   
  | COLLATE collation_name  
  | <file_and_filegroup_options>  
  | SET <option_spec> [ ,...n ] [ WITH <termination> ] 
  | SET COMPATIBILITY_LEVEL = { 140 | 130 | 120 | 110 | 100 | 90 }   
} ;

OBS: Kompatibilitetsnivåene som vises ovenfor gjenspeiler eldre utgivelser. Nåværende versjoner legger til 150 (SQL Server 2019), 160 (SQL Server 2022) og 170 (SQL Server 2025), samtidig som de fortsatt støtter flere tidligere nivåer.

Endre navnet på .mdf/.ldf-filen

Spørsmål:

Alter DATABASE Edu_TSQL_Alter;
MODIFY FILE ( NAME = Edu_TSQL, NEWNAME = Edu_TSQL_newName );

Den omdøpte logiske filen gjenspeiles i databaseegenskapene, som vist nedenfor.

Databaseegenskaper som bekrefter den omdøpte logiske filen Edu_TSQL_newName

Endre plasseringen av .mdf/.ldf-filen

Spørsmål:

Alter DATABASE Edu_TSQL_Alter;
MODIFY FILE ( NAME = Edu_TSQL_NewName, FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL_MS\MSSQL\DATA\New_File\Edu_TSQL_log.ldf' );

Den oppdaterte filbanen for databasen vises nedenfor.

Databasefilside som viser plasseringen til den nye .ldf-loggfilen

Slett database

Det finnes to måter å slette (drop) en database i SQL Server:

  • SQL Server Management Studio
  • Transaksjoner SQL

Slik slipper du database i SQL Server Management Studio

Følgende er prosessen for å slette en database i SQL Server Management Studio. La oss prøve å slette den forhåndsopprettede databasen vår, «Edu_Alter».

Trinn 1) Høyreklikk på databasen, klikk på «Slett», og klikk deretter på «OK».

Dialogboksen Slett objekt for slippping Edu_Alter-databasen i SSMS

Resultat: 'Edu_Alter' er slettet fra databaselisten 'Object Explorer'.

Object Explorer-databaseliste etter at Edu_Alter-databasen ble slettet

Slett database ved hjelp av Transact-SQL

La oss prøve å slette den forhåndsopprettede databasen vår 'Edu_TSQL_Alter'.

Syntaks:

DROP DATABASE <Databse_name>

Spørsmål:

USE master;  
GO  
DROP DATABASE Edu_TSQL_Alter;  
GO

Kjør søket ovenfor ved å klikke på "Utfør".

Resultat: 'Edu_TSQL_Alter' slettes fra databaselisten 'Object Explorer', som vist nedenfor.

Object Explorer-databaseliste etter at Edu_TSQL_Alter-databasen ble slettet med T-SQL

Gjenopprett database i SQL Server

Du kan opprette en database ved å gjenopprette en database du har sikkerhetskopiert tidligere. Dette kan gjøres ved å kjøre RESTORE DATABASE-kommandoen, som bruker følgende syntaks:

restore Database <database name> from disk = '<Backup file location + filename>

Spørringen skal utføres i spørrevinduet, akkurat som de foregående kommandoene. For eksempel:

restore database Edu from disk = 'C:\Backup\Edu_full_backup.bak'

Du kan også bruke GUI-navigasjonen: Høyreklikk på Database > Gjenopprett database > Enhet > importer sikkerhetskopifilen > klikk OK.

Spørsmål og svar

Oppretting av en database krever tillatelse som CREATE DATABASE, CREATE ANY DATABASE eller ALTER ANY DATABASE i hoveddatabasen. Et medlem av sysadmin- eller dbcreator-serverrollen, eller en passende tildelt Logg inn, kan kjøre setningen.

En enkelt SQL Server-instans kan holde opptil 32 767 databaser. Dette tallet er en streng arkitektonisk grense; i praksis gjør minne-, lagrings- og administrasjonskostnader langt mindre tall tilrådelige for god ytelse.

Nei. Systemdatabaser som master, model, msdb, tempdb og resource kreves av motoren og kan ikke slettes. Bare brukerdatabaser du oppretter kan slettes med DROP DATABASE eller slettealternativet.

STØRRELSE angir den opprinnelige filstørrelsen, MAXSIZE angir den største størrelsen filen kan vokse til, og FILEGROWTH angir hvor mye plass som legges til hver gang filen utvides. De gjelder både data- og loggfilene.

COMPATIBILITY_LEVEL styrer hvilken spørrebehandlingsatferd en database bruker. Gjeldende verdier inkluderer 140 (SQL Server 2017), 150 (2019), 160 (2022) og 170 (2025). ALTER DATABASE SET COMPATIBILITY_LEVEL endrer den uten å flytte databasen til en ny server.

DROP DATABASE sletter databasen og dens .mdf- og .ldf-filer permanent. Å ta AV en databaseLINE stopper bare tilgang mens filene blir liggende på disken, slik at du kan få dem tilbake på nett senere uten gjenoppretting.

Ja. GitHub Copilot kan utarbeide CREATE DATABASE-, ALTER DATABASE- og DROP DATABASE-setninger fra naturlige språkforespørsler i SSMS eller editoren din. Se alltid gjennom genererte filstier, størrelser og alternativer før du kjører dem på en ekte server.

AI og maskinlæring hjelper til med klargjøring ved å anbefale filstørrelser og vekstinnstillinger, forutsi kapasitet, oppdage konfigurasjonsavvik og flagge risikable DROP- eller ALTER-operasjoner. De støtter databaseadministratoren i stedet for å erstatte nøye gjennomgang.

Oppsummer dette innlegget med: