MS SQL Server 2000 - проверьте существующую ошибку базы данных

Я использую MS SQL Server 2000 SP4, и у меня есть эта часть скрипта, которая проверяет существующую базу данных:

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

Я продолжаю получать эту ошибку:

Не удалось найти запись в sysdatabases для базы данных "MY_DBNAME". Записи с таким именем не найдены. Убедитесь, что имя введено правильно.

Есть ли способ отключить это сообщение или есть другой способ проверить, существует ли таблица?


person Aoi Karasu    schedule 16.07.2009    source источник


Ответы (2)


Он пытается скомпилировать все это, включая «USE MY_DBNAME» перед запуском. Компиляция завершается неудачно, так как эта база данных не существует. Боюсь, вы не можете сделать то, что пытаетесь сделать, в одном пакете SQL.

person David M    schedule 16.07.2009

Благодаря вашим подсказкам я нашел решение:

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
person Aoi Karasu    schedule 16.07.2009