متى يجب تأهيل الجدول أو عرض الاسم مع DBO في استعلام؟

StackOverflow https://stackoverflow.com/questions/4277371

  •  28-09-2019
  •  | 
  •  

سؤال

لدي عرض في SQL Server ، دعنا نقول my_view.

عندما أقوم بتنفيذ الأمر SELECT * FROM MY_VIEW أنه يعمل بشكل جيد. ومع ذلك ، عندما أقوم بتنفيذها كSELECT * FROM dbo.MY_VIEW أحصل على *اسم كائن غير صالح 'mydb.dbo.my_view' *

أنا متصل بخادم SQL باستخدام SA.

ما هو الخطأ في هذا؟ ومتى يجب أن نستخدم dbo.my_view ومتى لا؟

تحديث: اسم المخطط على العرض هو DBO وعندما قمت بإنشاء العرض ، كنت أيضًا على اتصال مع SA.

update2 لقد وجدت أن المشكلة هي ترتيب حساس للحالة. المشكلة لم تكن بسبب DBO. بادئة. كان ذلك لأن جمع قاعدة البيانات كان حساسًا للحالة وكانت أسماء الجدول في الاستعلامات في حالة خاطئة.

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

المحلول 3

لقد وجدت أن المشكلة هي ترتيب حساس للحالة. المشكلة لم تكن بسبب DBO. بادئة. كان ذلك لأن جمع قاعدة البيانات كان حساسًا للحالة وكانت أسماء الجدول في الاستعلامات في حالة خاطئة.

نصائح أخرى

هل قمت بإنشاء كائناتك تحت اسم مخطط مختلف عن DBO؟ يعتمد ذلك على اسم المخطط الافتراضي لحساب المستخدم الخاص بك إذا لم تكن مؤهلاً عند إنشاء العرض. في SQL 2K5 و 2K8 ، أعتقد أن السلوك الافتراضي هو إنشاء مخطط جديد لكل مستخدم مقابل تعيينه لمخطط "DBO".

أنت في قاعدة البيانات الرئيسية. قمت بإنشاء العرض في قاعدة البيانات الرئيسية. كان استعلامك الفعلي SELECT * FROM MyDB.dbo.MY_VIEW. حاول إنشاء العرض في قاعدة بيانات MyDB بدلاً من ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top