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

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

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

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

2 ответа

Решение

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

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

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
Другие вопросы по тегам