Pregunta

Puedo utilizar SP4 MS SQL Server 2000 y tengo esta parte del guión, que verifica la base de datos existente:

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

Sigo recibiendo este error:

No se pudo localizar la entrada en sysdatabases para 'MY_DBNAME' base de datos. No se encontró una búsqueda con ese nombre. Asegúrese de que el nombre se ha introducido correctamente.

¿Hay una manera de desactivar este mensaje, o hay otra manera de comprobar si existe una tabla?

¿Fue útil?

Solución

Está tratando de recopilar toda la cosa, incluyendo "MY_DBNAME USO" antes de que se ejecute. Compilación falla debido a esta base de datos no existe. No se puede, me temo, hacer lo que estamos tratando de hacer en un solo lote SQL.

Otros consejos

Gracias a sus consejos que he encontrado la solución:

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top