2009-07-16 4 views
1

-je utiliser MS SQL Server 2000 SP4 et j'ai cette partie du script qui vérifie la base de données existante:MS SQL Server 2000 - vérifier l'erreur de base de données existante

IF EXISTS (SELECT * FROM sysdatabases WHERE name='MY_DBNAME') 
BEGIN 
    PRINT 'Using the existing database MY_DBNAME.' 
    USE MY_DBNAME 
END 
ELSE 
BEGIN 
    PRINT 'Creating new database MY_DBNAME.' 
    CREATE DATABASE MY_DBNAME 
END 
GO 

Je continue à obtenir cette erreur:

Impossible de localiser l'entrée dans sysdatabases pour la base de données 'MY_DBNAME'. Aucune entrée trouvée avec ce nom. Assurez-vous que le nom est entré correctement.

Y a-t-il un moyen de désactiver ce message ou existe-t-il un autre moyen de vérifier si une table existe?

Répondre

4

Il essaie de compiler le tout, y compris "USE MY_DBNAME" avant qu'il ne s'exécute. La compilation échoue car cette base de données n'existe pas. Je crains que vous ne puissiez pas faire ce que vous essayez de faire dans un seul lot SQL.

1

Merci à vos conseils j'ai trouvé la solution:

IF EXISTS (SELECT * FROM sysdatabases WHERE name='MY_DBNAME') 
BEGIN 
    PRINT 'Using the existing database MY_DBNAME.' 
END 
ELSE 
BEGIN 
    PRINT 'Creating new database MY_DBNAME.' 
    CREATE DATABASE [MY_DBNAME] 
END 
GO 

USE [MY_DBNAME] 
GO 
Questions connexes