MSSQL2005: Restaurer la database sans restaurer le catalogue de text intégral

Lors de la restauration de ma database, j'ai un problème avec le file physique du catalogue de text intégral en cours d'utilisation.

The file 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\FTData\MyCatalog' cannot be overwritten. It is being used by database 'demo2'. 

J'utilise cette instruction de restauration

  RESTORE database demo from disk = N'c:\temp\demo.bak' WITH REPLACE ,MOVE 'demo_Data' TO 'd:\Program Files\Microsoft SQL Server 2005\MSSQL\Data\demo.MDF' ,MOVE 'demo_Log' TO 'd:\Program Files\Microsoft SQL Server 2005\MSSQL\Data\demo.LDF'; 

Une solution serait de restaurer sans le catalogue de text complet, mais je peux comprendre comment faire cela.

J'ai également dû restaurer des bases de données avec du text intégral (en fait, mon script de restauration automatique a également été restauré pour restaurer automatiquement l'index de text intégral)

Je ne connais aucun moyen de ne PAS les restaurer (la restauration SQL vous donnera une erreur si vous ne spécifiez pas RESTORE WITH MOVE pour l'index de text intégral, sauf si un path correspond au path d'origine dans le file .bak )

je suggère

  1. restaurer la database entière, y compris l'index en text intégral
  2. supprimer tout l'index de text intégral dans la database énumérer tous les catalogues de text intégral SELECT nom FROM DB.sys.fulltext_catalogs (SQL2005 / 2008) puis générer la command drop (vous devrez peut-être supprimer l'index sur les tables avant de supprimer les catalogues) CATALOGUE FULLTEXT [nom]

Je ne suis pas sûr de savoir comment restaurer sans file fulltext mais vous pouvez toujours restaurer avec move. Vous le faites déjà pour la database et le file journal, complétez simplement votre déclaration avec:

 ,MOVE 'sysft_demo_ft' TO 'd:\NewLocationForFullTextFile.ft' 

Vous pouvez get les noms exacts des files avec:

 RESTORE FILELISTONLY FROM DISK='C:\yourbackupfile.bak'