Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server MS SQL Server 2000-检查现有数据库错误_Sql Server_Select_Sql Server 2000_Exists_Sysdatabases - Fatal编程技术网

Sql server MS SQL Server 2000-检查现有数据库错误

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

我使用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
我不断地发现这个错误:

在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