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