Bonjour tout le monde

J'ai un script qui génére une erreur que je n'arrive pas à comprendre,
Le voici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
if exists (select name from master.dbo.sysdatabases where name like 'restauration')
	begin	
		use master
		drop database restauration
	end
	create database restauration
	use restauration
Voila ce qu'il me dit concernant la ligne 'use restauration' :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Impossible de trouver l'entrée dans sysdatabases pour la base de données  'restauration'. Aucune entrée ne porte ce nom. Assurez-vous que le nom est correctement saisi.
J'ai cette erreur si au départ la base restauration n'est pas présente sur le serveur.

En fait j'utilise une base temporaire. A chaque fois que je lance le script, si elle exite je la supprime et ensuite je la crée ou la recrée. Comme ensuite je lui crée des tables je fait une use restauration pour pouvoir travailler dessus.

je ne comprend pas pourquoi il me dit qu'il ne trouve pas la base puisque je la crée juste avant.

Quand j'execute le script en deux fois, il n'y a pas de problème. c'est à dire que je commence par supprimer la base si elle existe puis je la recrée.
Ensuite je fais fais le use séparement et là ça marche.

On dirait que l'analyseur de requête vérifie si la base existe bien avant d'exécuter le script et comme elle n'y est pas il m'envoie une erreur .
Mais ça me paraît bizarre

Merci pour tous conseils
Nicolas