Delen via


Een database verplaatsen met behulp van loskoppelen en koppelen (Transact-SQL)

van toepassing op:SQL Server-

In dit onderwerp wordt beschreven hoe u een losgekoppelde database naar een andere locatie verplaatst en deze opnieuw koppelt aan hetzelfde of een ander serverexemplaren in SQL Server. We raden u echter aan databases te verplaatsen met behulp van de procedure voor geplande verplaatsing van ALTER DATABASE in plaats van loskoppelen en koppelen. Voor meer informatie, zie Gebruikersdatabases verplaatsen.

Belangrijk

U wordt aangeraden geen databases te koppelen of te herstellen uit onbekende of niet-vertrouwde bronnen. Dergelijke databases kunnen schadelijke code bevatten die onbedoelde Transact-SQL code kan uitvoeren of fouten kan veroorzaken door het schema of de structuur van de fysieke database te wijzigen. Voordat u een database van een onbekende of niet-vertrouwde bron gebruikt, voert u DBCC CHECKDB- uit op de database op een niet-productieserver en onderzoekt u ook de code, zoals opgeslagen procedures of andere door de gebruiker gedefinieerde code, in de database.

Procedure

Een database verplaatsen met behulp van loskoppelen en koppelen

  1. De database loskoppelen. Zie Een database loskoppelenvoor meer informatie.

  2. Verplaats in een Windows Verkenner- of Windows-opdrachtpromptvenster het losgekoppelde databasebestand of -bestanden en logboekbestand of -bestanden naar de nieuwe locatie.

    U moet de logboekbestanden verplaatsen, zelfs als u nieuwe logboekbestanden wilt maken. In sommige gevallen vereist het opnieuw koppelen van een database de bestaande logboekbestanden. Bewaar daarom altijd alle losgekoppelde logboekbestanden totdat de database zonder hen succesvol is gekoppeld.

    Notitie

    Als u de database probeert bij te voegen zonder het logboekbestand op te geven, zoekt de bijlagebewerking naar het logboekbestand op de oorspronkelijke locatie. Als er nog steeds een kopie van het logboek op de oorspronkelijke locatie bestaat, wordt die kopie bijgevoegd. Als u het oorspronkelijke logboekbestand niet wilt gebruiken, geeft u het pad van het nieuwe logboekbestand op of verwijdert u de oorspronkelijke kopie van het logboekbestand (nadat u het naar de nieuwe locatie hebt gekopieerd).

  3. Voeg de gekopieerde bestanden toe. Zie Een database koppelenvoor meer informatie.

Voorbeeld

In het volgende voorbeeld wordt een kopie gemaakt van de AdventureWorks2022-database met de naam MyAdventureWorks. De Transact-SQL-instructies worden uitgevoerd in een query-editorvenster dat is verbonden met het serverexemplaar waarmee het is gekoppeld.

  1. Voer de volgende Transact-SQL-instructies uit om de database AdventureWorks2022 los te koppelen.

    USE master;  
    GO  
    EXEC sp_detach_db @dbname = N'AdventureWorks2022';  
    GO  
    
  2. Kopieer met behulp van de gewenste methode de databasebestanden (AdventureWorks208R2_Data.mdf en AdventureWorks208R2_log) naar: C:\MySQLServer\AdventureWorks208R2_Data.mdf en C:\MySQLServer\AdventureWorks208R2_Log.ldf.

    Belangrijk

    Voor een productiedatabase plaatst u de database en het transactielogboek op afzonderlijke schijven.

    Als u bestanden via het netwerk naar een schijf op een externe computer wilt kopiƫren, gebruikt u de UNC-naam (Universal Naming Convention) van de externe locatie. Een UNC-naam heeft de vorm \\Servernaam\Sharename\Pad\Bestandsnaam. Net als bij het schrijven van bestanden naar de lokale harde schijf, moeten de juiste machtigingen worden verleend voor het lezen of schrijven naar een bestand op de externe schijf aan het gebruikersaccount dat wordt gebruikt door het exemplaar van SQL Server.

  3. Koppel de verplaatste database en eventueel het logboek door de volgende Transact-SQL instructies uit te voeren:

    USE master;  
    GO  
    CREATE DATABASE MyAdventureWorks   
        ON (FILENAME = 'C:\MySQLServer\AdventureWorks2022_Data.mdf'),  
        (FILENAME = 'C:\MySQLServer\AdventureWorks2022_Log.ldf')  
        FOR ATTACH;  
    GO  
    

    In SQL Server Management Studio is een zojuist gekoppelde database niet direct zichtbaar in Objectverkenner. Als u de database wilt weergeven, klikt u in Object Explorer op Weergave, en vervolgens op Vernieuwen. Wanneer het knooppunt Databases is uitgevouwen in Objectverkenner, wordt de zojuist gekoppelde database nu weergegeven in de lijst met databases.

Zie ook

Database loskoppelen en koppelen (SQL Server)