Sql server MS SQL Server 2000-检查现有数据库错误
我使用MS SQL Server 2000 SP4,脚本的这一部分用于检查现有数据库:Sql server MS SQL Server 2000-检查现有数据库错误,sql-server,select,sql-server-2000,exists,sysdatabases,Sql Server,Select,Sql Server 2000,Exists,Sysdatabases,我使用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.' CREAT
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”的条目。找不到具有该名称的条目。确保输入的名称正确
是否有方法禁用此消息,或者是否有其他方法检查表是否存在?它正在尝试编译整个过程,包括在运行前使用“我的数据库名”。编译失败,因为此数据库不存在。恐怕你不能在一个SQL批处理中完成你想做的事情。它试图在运行之前编译整个过程,包括“使用我的数据库名”。编译失败,因为此数据库不存在。恐怕您无法在一个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
感谢您的提示,我找到了解决方案:
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