2010-09-20 9 views
1

Dans SQL Server 2008, je peux attacher des bases de données situées uniquement dans son dossier prédéfini (C: \ Program Files \ Microsoft SQL Server \ MSSQL10.MSSQLSERVER \ MSSQL \ DATA). À quelques occasions, surtout quand je lis un livre, j'ai besoin d'attacher la base de données de test du bureau plutôt que de copier chaque base de données chaque fois que j'en ai besoin, mais SQL Server ne me permet pas d'accéder au bureau.Attachez le fichier .mdf situé sur le bureau?

Une solution de contournement pour résoudre ce problème?

Répondre

1

Il s'agit probablement d'accorder au compte exécutant les autorisations appropriées du service SQL votre dossier de bureau (C:\Documents and Settings\YourLogin\Desktop). Mais, plutôt que d'utiliser un emplacement comme Desktop qui est spécifique à votre login et peut-être inaccessible au compte qui exécute le service SQL, pourquoi ne pas utiliser un emplacement commun pour ces fichiers? Quelque chose comme C:\AdHocDBs ou tout ce que vous voulez l'appeler.

+0

Eh bien, ce n'est pas seulement de bureau, mais surtout parce que quand je télécharge quelque chose, il est téléchargé sur Desktop. Quoi qu'il en soit, je vais essayer le tour avec des autorisations. – sandalone

+0

J'utilise l'authentification Windows pour me connecter à SQL Server. Des idées auxquelles l'utilisateur devrait avoir accès? J'ai déjà 3 utilisateurs autorisés: SYSTEM, moi-même et Administrators. – sandalone

+0

Plus que probablement, c'est le compte SERVICE RÉSEAU. Vous pouvez vérifier en exécutant 'services.msc' à partir d'une invite de commande, puis en vérifiant la colonne" Se connecter en tant que "pour le service" SQL Server ". –

0

Lorsqu'un fichier de base de données (données ou journal) est créé pour la première fois, il se trouve (bien sûr) dans un lecteur et un dossier spécifiques. Lorsqu'une sauvegarde est créée, ces informations sont stockées dans le cadre de la sauvegarde. Une commande RESTORE de base de données suppose que la base de données doit être restaurée exactement au même endroit, sauf instruction contraire. Pour ce faire, dans la commande RESTORE sous l'option "with", vous devez inclure l'option "move". Il ressemble à ceci:

RESTORE ... 
with 
    move '<logcalFileName>' to 'physicalFileName' 
    ,move '<logcalLogFileName>' to 'physicalLogFileName' 

Un move doit être inclus pour chaque fichier à être ainsi déplacé, si vous vous retrouvez généralement avec au moins deux de ces clauses. La partie difficile est que vous devez connaître les noms logiques des fichiers de base de données. Ceux-ci peuvent être trouvés via sp_helpFile sur une base de données attachée et

RESTORE FILELISTONLY 
from disk = '<backupFile>' 

Sur une sauvegarde existante.

(Je suis sûr que tout cela peut être fait d'une manière ou d'une autre avec les interfaces de sauvegarde/restauration de SSMS.) J'ai basculé sur des scripts TSQL il y a des années pour fournir un accès rapide et flexible. commandes.)

+0

Merci d'avoir essayé de m'aider, mais je n'en ai pas besoin. J'ai simplement besoin d'ouvrir le fichier de base de données. Mdf du dossier que je veux. – sandalone

Questions connexes