2009-02-20 9 views
3

Je dois manquer quelque chose de vraiment simple ici!Comment copier et remplacer une base de données dans SQL Server 2005 avec SSIS?

J'ai une base de données dans mon environnement de développement appelé Projet. J'ai une base de données dans mon environnement de test appelé Project_UAT.

J'ai créé un package SSIS qui a correctement copié ma base de données de Project à Project_UAT. Je suis sûr que cela élimine la plupart des problèmes d'autorisation et de configuration.

Maintenant, je veux recréer le paquet et cette fois lui permettre d'écraser la destination, qui est Project_UAT. C'est simplement parce que de temps en temps je veux cliquer sur un bouton dans Microsoft SQL Management Studio qui pousse le nouveau schéma de base de données, les données, les utilisateurs, et tout, dans mon environnement de test. Je veux écraser les données. Donc je crée le paquet comme je l'ai fait auparavant, mais cette fois je spécifie le nom de base de données déjà existant comme "Base de données de destination" et je sélectionne le bouton radio "Déposez n'importe quelle base de données sur le serveur de destination avec le même nom, puis continuez avec le transfert de base de données, en écrasant les fichiers de base de données existants. "

Je clique sur Suivant, et que me dit-il?

"nom de base de données existe déjà à destination"

Eh bien, je sais! Je viens de vous dire que je veux l'écraser!

Comment est-ce que je fais ce travail?

+0

Je reçois la même erreur dans SSMS –

Répondre

2

Vous ne savez pas si le point me manque, mais pourquoi n'utilisez-vous pas une tâche pour supprimer/supprimer la base de données existante avant votre étape de déploiement?

Peut-être pourriez-vous qualifier les Tâches des composants SSIS que vous utilisez dans votre paquetage SSIS.

Cheers, John

+0

J'ai fini par faire cela. Je suppose que je ne faisais qu'un de ces moments où j'essayais désespérément de comprendre pourquoi ça ne fonctionnait pas comme ça devrait l'être, que je n'envisageais pas de contourner le problème. – Chris

+0

Hey, nous avons tous été là à un moment ou un autre. –

2

Vous pouvez ajouter une tâche d'exécution SQL dans le flux de contrôle pour déposer la base de données. Il suffit de définir la propriété SQLStatement à

DROP DATABASE Project_UAT 

Après cette étape est exécutée la nouvelle copie de la base de données Project_UAT ne devra pas remplacer l'ancien.

-1

Guys c'est une solution de bon sens. Beaucoup de complexité pour rien.

Sauvegardez la base de données de destination que vous souhaitez copier et supprimez la base de données de destination.

Ouvrez l'assistant de base de données de copie et suivez les étapes.

Utilisez la méthode détacher et attacher. Lorsque vous arrivez à la base de données de destination de configuration, utilisez l'option si la base de données de destination existe, sélectionnez la suppression de la base de données sur le serveur de destination portant le même nom.

Maintenant, il passera à l'écran suivant.

Mais cela ne fonctionne que si vous supprimez la base de données de destination avant de démarrer l'assistant.

J'ai peut-être manqué quelque chose mais cela a fonctionné pour moi.

+0

Le point était de l'automatiser. – Chris

1

J'ai eu ce problème parce que j'ai supprimé la base de données avant la main. La base de données n'est pas dans le dossier de destination, mais SQL Server 2008 pense toujours qu'il est là. Le rafraîchissement n'a pas fonctionné. Et SQL Server n'honorerait pas la sélection de "Drop n'importe quelle base de données sur le serveur de destination ..." Il s'est juste plaint que la base de données existait déjà.

Questions connexes