【问题标题】:MS SQL Server 2000 - check for existing database errorMS SQL Server 2000 - 检查现有数据库错误
【发布时间】:2010-11-11 07:54:27
【问题描述】:

我使用 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-server select sql-server-2000 exists sysdatabases


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      感谢您的提示,我找到了解决方案:

      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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-27
        • 1970-01-01
        • 2010-09-12
        • 2013-06-15
        • 1970-01-01
        • 2010-12-17
        相关资源
        最近更新 更多