1

我使用 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”的条目。未找到具有该名称的条目。确保输入的名称正确。

有没有办法禁用此消息,或者是否有另一种检查表是否存在的方法?

4

2 回答 2

4

它试图在运行之前编译整个内容,包括“USE MY_DBNAME”。编译失败,因为该数据库不存在。恐怕你不能在一个 SQL 批处理中做你想做的事情。

于 2009-07-16T11:04:22.990 回答
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
于 2009-07-16T11:13:08.417 回答