Donc l'idée, c'est de fusionner un certain nombre de bases de données en une seule, ce qui est très bien.
Est-ce que chacune des bases de données comporte très exactement le même nombre de tables ?
Si oui, est-ce que chacune de ces tables ont la même structure à travers toutes les bases de données ?
Si tel est le cas, il vous suffit :
- de créer une base de données supplémentaire
- de scripter le schéma de l'une d'entre-elles
- d'exécuter le script obtenu sur la nouvelle base de données
- d'écrire une procédure qui copie les données de chacune des bases de données dans la nouvelle base de données
- de prendre une sauvegarde de la nouvelle base de données (BACKUP DATABASE maNouvelleDB TO DISK = '')
- de restaurer de fichier de sauvegarde sous une instance de SQL Server 2005
Enfin mes fichiers sont bien en lecture seul.
Une base de données, ce n'est pas un ensemble de fichiers. Toute base de données SQL Server comporte au moins deux fichiers : le fichier de données, qui peut être en lecture seule, et le fichier du journal des transactions. Mais elle peut aussi comprendre de nombreux fichiers de données, et quelques fichiers du journal des transactions !
Le fait que vos fichiers soient en lecture seule n'est pas géré par l'OS Windows (donc ce que vous voyez dans l'explorateur de fichiers n'a aucune valeur, excepté la taille), mais par SQL Server. Vous pouvez réaliser cela sous SQL Server 2000 et suivants à l'aide du squelette de requête suivant :
ALTER DATABASE maBD MODIFY FILEGROUP monGroupeDeFichiers READONLY
Alternativement, vous pouvez rendre un groupe de fichier écrivable avec l'instruction suivante :
ALTER DATABASE maBD MODIFY FILEGROUP monGroupeDeFichiers READWRITE
Mais c'est peut-être aussi votre base de données qui est en lecture seule. Pour la rendre écrivable, il suffit d'exécuter :
ALTER DATABASE maDB SET READ_WRITE -- ou à l'inverse, READ_ONLY
@++
Partager