2011-07-28 1 views
10

Je suis une installation SQL Server 2008 avec près de 15 bases de données en cours d'exécution. Maintenant, en raison de la rareté de l'espace, je voudrais déplacer le chemin de données vers un autre lecteur. Quelle est la meilleure pratique pour cela. S'il vous plaît expliquer dans les détails si inclure des commandes SQL comme je suis relativement nouveau à l'administration de SQL Server.Sql Server modifier les données et le chemin d'accès du journal de la base de données existante

Remarque - J'ai déjà modifié le chemin dans les propriétés du serveur SQL de SQL Management Studio 2008 vers le nouveau chemin. Mais j'aimerais aussi que les bases de données existantes résident dans le nouveau chemin.

Répondre

12

Tout d'abord, détacher la base de données:

USE master; 
GO 
-- Important! We need to drop the existing connections. 
ALTER DATABASE DBName SET SINGLE_USER WITH ROLLBACK IMMEDIATE; 
GO 
EXEC sp_detach_db @dbname = N'DBName'; 
GO 

Étape suivante - Copier les fichiers .mdf et .ldf de ces fichiers de base de données vers un nouvel emplacement

Et puis attacher la base de données:

USE master; 
EXEC sp_attach_db @dbname = N'dbName', 
@filename1 = N'', --path do .mdf 
@filename2 = N''; --path to .ldf 
GO 

Si vous d vous ne voulez pas attacher et détacher toutes les bases de données une par une, vous pouvez générer un script SQL pour attacher et détacher toutes les bases de données dont vous avez besoin (système execept, bien sûr), en utilisant curosr qui recherche dans la vue de gestion dynamique sys.databases. Mais n'oubliez pas de copier les fichiers de base de données.

Questions connexes