Comment renommer les Fichiers de Base de données Physique
J'ai utilisé tsql pour détacher une base de données comme ceci:
EXEC sp_detach_db @dbname = 'my_db'
J'ai ensuite fait de l'utilisation de PHP pour renommer les fichiers physiques. J'ai été en mesure de renommer le fichier mdf, mais pas le fichier ldf! J'ai même essayé une commande dos REN
mais cela ne fonctionne pas pour le fichier ldf soit!
Je voulais vous demander, est-il quelque chose de spécial à propos de la physique des fichiers journaux qui lui permettent de ne pas être renommé?
Est-il une meilleure manière de faire ceci?
Merci à tous
- La première question est pourquoi essayez-vous de le faire?
- Je suis en train de faire un bon re-nom. Je ne peux pas créer une base de données avec le même nom une fois que j'ai détaché une base de données depuis le fichier physique noms sont toujours les mêmes.
- Connexes Changer le nom d'une base de données SQL
Vous devez vous connecter pour publier un commentaire.
Détacher la Base de données, Renommer les fichiers, l'Attacher de nouveau.
Vous pouvez le faire en utilisant un
ALTER DATABASE
déclaration comme ceci:Vous avez besoin de modifier chaque fichier séparément, par exemple, si vous avez plusieurs fichiers de données, vous devez modifier chacun de ceux-ci.
Pour plus de détails, voir la La documentation Technet sur ce sujet.
Les "ALTER DATABASE (base de votre base de données) MODIFIER le FICHIER" commande renommer uniquement les noms logiques. Ce post montre comment utiliser xp_cmdshell aussi renommer les fichiers physiques: http://www.mssqltips.com/sqlservertip/1891/best-practice-for-renaming-a-sql-server-database/
Veuillez noter les points suivants:
1. xp_cmdshell être exécuté en vertu de l'utilisateur qui le processus SQL Server s'exécute, et peut ne pas avoir les autorisations de système de fichiers requis pour renommer les fichiers de base de données
2. Pour des raisons de sécurité, n'oubliez pas de désactiver xp_xmdshell
Ce qui suit est un exemple de la façon dont le changement de nom peut être effectuée en se basant sur ce blog. Il permettra de remplacer la base de données MyDB avec la base de données NewMyDB. L'original MyDB (renommé MyDB_OLD) sera détachée.
La façon la plus simple de renommer
SQL server physical database files
est:SQL server
où la base de données vous avez voulu renommer est situé.OldDatabaseName
" avec le nouveau nom de la base de données ("NewDatabaseName
") vous souhaitez changer le nom. Remplacer tous lesNewDatabaseName
avec le nouveau nom que vous souhaitez définir pour votre base de donnéesuse OldDatabaseName
Et puis cliquez Droit sur le
OldDatabaseName
, sélectionnezTasks
puis choisissezTake Offline
C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\...
) où les fichiers physiques se trouvent et de les renommer pour lesNewDatabaseName
que vous avez spécifié dans le numéro 2. N'oubliez pas de vérifier le chemin d'accès absolu de ces fichiers à être utilisé sur votre ordinateur.Microsoft SQL Server Management Studio
. Clic droit sur leOldDatabaseName
, sélectionnezTasks
puis choisissezBring Online
.OldDatabaseName
à laNewDatabaseName
. Vous êtes en fait 🙂ALTER DATABASE NewDatabaseName SET OFFLINE
puis effectuez les changements de nom de fichier avant de faireALTER DATABASE NewDatabaseName SET ONLINE
.