sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man hittar platsen för datafiler och loggfiler i SQL Server

Om du någonsin behöver veta var dina databasfiler finns, kör följande T-SQL-kod:

USE master;
SELECT 
  name 'Logical Name', 
  physical_name 'File Location'
FROM sys.master_files;

Detta kommer att returnera en lista över alla datafiler och loggfiler för SQL Server-instansen.

Så här ser det ut när jag kör den koden i SQL Operations Management Studio på en Mac:

Om du använder Windows kommer din sökväg att se ut som en Windows-sökväg. Något så här:

C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\Music.mdf

Även om du angav din egen plats skulle den lika gärna kunna se ut så här:

D:\data\Music.mdf

Vad är dessa filer?

När du skapar en databas i SQL Server skapas datafiler och transaktionsloggfiler automatiskt.

  • Datafilerna innehåller data och objekt som tabeller, index, lagrade procedurer och vyer.
  • Transaktionsloggfilerna registrerar alla transaktioner och databasändringar som görs av varje transaktion. Transaktionsloggfiler innehåller den information som krävs för att återställa alla transaktioner i databasen.

Om du inte uttryckligen anger en plats och ett namn för dessa filer, kommer SQL Server att placera dem på standardplatsen (standardplatsen anges på servernivå). Så här hittar du standardplatsen för datafiler och loggfiler i SQL Server.

Hitta filer för en specifik databas

Om du bara behöver hitta platsen för filerna för en viss databas kan du fråga sys.database_files systemkatalogvy istället. Byt helt enkelt till tillämplig databas och kör frågan.

Här är ett exempel:

USE Solutions;
SELECT
  name 'Logical Name', 
  physical_name 'File Location'
FROM sys.database_files;

Detta returnerar endast data och loggfiler för Solutions databas.


  1. Postgresql-tabeller finns, men att få relation finns inte när man frågar

  2. Hur skapar man en ny databas med hstore-tillägget redan installerat?

  3. Hur infogar jag flera kryssrutor i en tabell?

  4. orakel | radera dubbletter av poster