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

时间:2009-07-16 10:47:37

标签: 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.'
    CREATE DATABASE MY_DBNAME
END
GO

我一直收到这个错误:

无法在数据库'MY_DBNAME'的sysdatabases中找到条目。找不到具有该名称的条目。确保正确输入名称。

有没有办法禁用此消息,还是有其他方法可以检查,如果表存在?

2 个答案:

答案 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