سؤال

يمكنني استخدام 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". ليس هناك من مداخلة بهذا الاسم. تأكد من أن الاسم إدخالها بشكل صحيح.

هل هناك طريقة لتعطيل هذه الرسالة، أم أنها هناك طريقة أخرى للتحقق، إذا كان جدول موجود؟

هل كانت مفيدة؟

المحلول

يحاول ترجمة الأمر بأكمله، بما في ذلك "استخدام my_dbname" قبل تشغيله. فشل التجميع لأن قاعدة البيانات هذه غير موجودة. لا يمكنك ذلك، أخشى أن أفعل ما تحاول القيام به في دفعة 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
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top