لقد قمت بتتبع الإجراء المخزن كما هو موضح في ملف تعريف SQL Server 2005.لم يتم العثور عليه ولكنه يعمل.لماذا؟

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

سؤال

هذا غريب جدا.

لدي ملف التعريف الخاص بي مفتوحًا ويظهر بوضوح أنه يتم استدعاء الإجراء المخزن.أفتح قاعدة البيانات وقائمة SP، لكن SP غير موجود.ومع ذلك، هناك SP آخر اسمه هو نفسه باستثناء أنه يحتوي على البادئة "x"

هل يقوم SQL Server 2005 بتعيين اسم SP لاسم مختلف لأغراض أمنية؟

يحرر:لقد اكتشفت أنه مرادف، مهما كان ذلك.

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

المحلول

بشكل عام، عندما تعلم بوجود كائن لأنه تم استخدامه في استعلام، ولا يمكنك العثور عليه في شجرة الكائنات في Management Studio، يمكنك القيام بذلك للعثور عليه.

select *
from sys.objects
where name = 'THE_NAME_YOU_WANT'

لقد تحققت للتو، وهو يعمل مع المرادفات.

نصائح أخرى

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

قد لا يكون لديك إذن لرؤية كافة الكائنات الموجودة في قاعدة البيانات

إضافة إلى الإجابات السابقة، يمكن أن يكون أيضًا ضمن "إجراءات النظام المخزنة"، وإذا كان اسم الإجراء المخزن يبدأ بـ "sp_"، فمن الممكن أن يكون أيضًا في قاعدة البيانات الرئيسية.

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

select * from sys.objects where name = 'name of stored procedure'
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top