سؤال

أقوم بتحويل قاعدة البيانات من Teradata إلى SQLServer. لقد لاحظت أن جميع الجداول والإجراءات تسميتها البادئة "DBO". (على سبيل المثال "dbo.table1").

أود أن أعرف ما إذا كان يمكنني التخلص من "DBO" وكيف يمكنني التخلص منها لأنها ستجعل مهمة التحويل أسهل بكثير.

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

المحلول

dbo هو ليس جزء من اسم الجدول. إنه اسم المخطط الذي يتم إرفاق الجداول والإجراءات المخزنة. dbo هو المخطط الافتراضي في SQL Server ، على الرغم من أنه يمكنك إضافة الآخرين إذا لزم الأمر.

نرى هذه مقال MSDN عنها.

نصائح أخرى

DBO هو المخطط ، يمكنك تحديد مخطط جديد إذا أردت. DBO هو الافتراضي هو SQL Server.

جميع الجداول يجب أن تذهب إلى مخطط. كما يقول Durilai ، DBO هو مخطط "الافتراضي" لخادم SQL (موجود دائمًا). ومع ذلك ، لاحظ أن المستخدمين المختلفين يمكن أن يكون لديهم مخططات افتراضية مختلفة (إذا كان هناك أكثر من واحد).

إذا قمت بالإشارة إلى جدول دون تحديد المخطط ، فسيقوم SQL Server بالبحث في المخطط الافتراضي الخاص بك (والشيء نفسه ينطبق على أي كائنات أخرى).

لذا، إذا مخططك الافتراضي هو DBO ، والبيانين التاليين متكافئان:

select * from Table1
select * from dbo.Table1

DBO هو المخطط الافتراضي في SQL Server إذا لم يتم تعيين مخطط من قبل المستخدم ، إذا كنت تريد ، يمكنك إنشاء مخطط جديد وإنشاء جداول إليه.

المخططات مفيدة. على سبيل المثال ، اعتدت على منح تسجيل الدخول لتنفيذ إذن لكل إجراء مخزن بشكل منفصل. الآن ، أمنح تسجيل دخول التطبيق إذنًا إلى المخطط الذي يحتوي على جميع الإجراءات المخزنة. هذا أسهل بكثير.

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