sql >> Database >  >> RDS >> Sqlserver

Hoe de locatie van gegevensbestanden en logbestanden in SQL Server te vinden

Als u ooit wilt weten waar uw databasebestanden zich bevinden, voert u de volgende T-SQL-code uit:

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

Dit retourneert een lijst met alle gegevensbestanden en logbestanden voor de SQL Server-instantie.

Zo ziet het eruit als ik die code in SQL Operations Management Studio op een Mac uitvoer:

Als u Windows gebruikt, ziet uw pad eruit als een Windows-pad. Zoiets als dit:

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

Hoewel, als u uw eigen locatie opgeeft, deze er net zo goed als volgt uit kan zien:

D:\data\Music.mdf

Wat zijn deze bestanden?

Wanneer u een database aanmaakt in SQL Server, worden automatisch gegevensbestanden en transactielogbestanden aangemaakt.

  • De gegevensbestanden bevatten de gegevens en objecten zoals tabellen, indexen, opgeslagen procedures en weergaven.
  • De transactielogbestanden registreren alle transacties en de databasewijzigingen die door elke transactie zijn aangebracht. Transactielogbestanden bevatten de informatie die nodig is om alle transacties in de database te herstellen.

Als u niet expliciet een locatie en naam voor deze bestanden opgeeft, plaatst SQL Server ze op de standaardlocatie (de standaardlocatie wordt opgegeven op serverniveau). Hier leest u hoe u de standaardlocatie voor gegevensbestanden en logbestanden in SQL Server kunt vinden.

Bestanden zoeken voor een specifieke database

Als u alleen de locatie van de bestanden voor een bepaalde database hoeft te vinden, kunt u de sys.database_files opvragen systeemcatalogusweergave in plaats daarvan. Schakel eenvoudig over naar de toepasselijke database en voer de query uit.

Hier is een voorbeeld:

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

Hiermee worden alleen de gegevens en logbestanden geretourneerd voor de Solutions database.


  1. MySQL-tijdzone wijzigen?

  2. Zoek uit of een tabel is gepartitioneerd in SQL Server (T-SQL)

  3. SQLite BESTAAT

  4. Hoe SUBSTRING() werkt in MariaDB