我使用的是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'的sysdatabases中找到条目。找不到具有该名称的条目。确保正确输入名称。
有没有办法禁用此消息,还是有其他方法可以检查,如果表存在?
答案 0 :(得分:4)
它试图编译整个事情,包括“USE MY_DBNAME”在它运行之前。编译失败,因为该数据库不存在。我害怕,你不能在一个SQL批处理中做你想要做的事情。
答案 1 :(得分:1)
感谢您的提示,我找到了解决方案:
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