تصحيح: احتمال تعطل ملقم SQL عند طلب تنفيذ الإجراء المخزن البعيد يحتوي على تعريف غير كامل للوسائط

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

اضغط هنا لرابط المقالة باللغة الانجليزية3135750
الأعراض
على ملقم بعيد يقوم بتشغيل Microsoft SQL Server 2012 أو SQL Server 2014، لديك إجراء مخزن يحتوي على وسيطة إخراج مشابهة لما يلي:

create procedure procExample @retVal varchar(10) outputas set @retVal = 'Goodbye';
عادة، يكون بناء الجملة لاستدعاء إجراء عن بعد ما يلي:

-- Declare a variable to hold a result, and have it initialized with a non-NULL valuedeclare @outputResult varchar(10) = 'Hello';execute ('MyDb.dbo.procExample ? OUTPUT', @outputResult OUTPUT) at [MyRemoteServer];print @outputResult;
إذا قمت بحذف "؟ بناء جملة استدعاء إطار الإخراج "، قد يحدث عطل الملقم المحلي الذي يقوم بتشغيل SQL Server. الملقم البعيد الاستمرار في العمل لأنه لم يصل التنفيذ إلى أنه بسبب هذا الإغفال بناء الجملة. على سبيل المثال، بناء الجملة مشابهة لما يلي:

-- Declare a variable to hold a result, and have it initialized with a non-NULL valuedeclare @outputResult varchar(10) = 'Hello';execute ('MyDb.dbo.procExample', @outputResult OUTPUT) at [MyRemoteServer];
لم تتم تهيئة متغير لا يؤدي الملقم المحلي لتحطم الطائرة. ومع ذلك، فإنه بإنشاء رسالة خطأ تنص على أن لا كافة الوسائط المحددة للاتصال (كما ينبغي). على سبيل المثال، يكون بناء الجملة التالي:

-- Declare a variable to hold a result, and initialize it with NULL, or leave uninitializeddeclare @outputResult varchar(10) = NULL;execute ('MyDb.dbo.procExample', @outputResult OUTPUT) at [MyRemoteServer];
في هذه الحالة، تظهر رسالة خطأ مشابهة لما يلي:

جي إس 201، مستوى 16، 4 حالة، بروسيكسامبلي الإجراء، البند 10

يتوقع إجراء مخزن أو دالة 'بروسيكسامبلي' المعلمة '@retVal'، الذي لم يتم تقديمها.
الحل

معلومات التحديث

تم تصحيح هذه المشكلة أولاً في التحديث التراكمي التالية ل SQL Server:
توصية: تثبيت آخر تحديث تراكمي ل SQL Server

يحتوي التحديث التراكمي كل جديدة ل SQL Server على كافة الإصلاحات العاجلة وكافة إصلاحات الأمان التي تم تضمينها في التحديث التراكمي السابق. تحقق من أحدث التحديثات التراكمية ل SQL Server:

ملاحظة: يمكنك العثور على مزيد من المعلومات حول SQL Server أحدث البنيات من أين يمكن العثور على مزيد من المعلومات حول SQL Server أحدث البنيات.
تصريح
أقرت Microsoft أن هذه مشكلة في منتجات Microsoft المسردة في قسم "ينطبق على".
مراجع
التعرف المصطلحات تستخدم Microsoft لوصف تحديثات البرامج.

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 3135750 - آخر مراجعة: 05/31/2016 07:54:00 - المراجعة: 3.0

Microsoft SQL Server 2012 Service Pack 2, Microsoft SQL Server 2014 Service Pack 1, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Standard

  • kbqfe kbfix kbexpertiseinter kbsurveynew kbmt KB3135750 KbMtar
تعليقات