MS SQL Server 2000 - проверка на наличие ошибки базы данных - PullRequest
1 голос
/ 16 июля 2009

Я использую 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

Я получаю эту ошибку:

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

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

Ответы [ 2 ]

4 голосов
/ 16 июля 2009

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

1 голос
/ 16 июля 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
...