تخطي إلى المحتوى الرئيسي
الدعم
تسجيل الدخول باستخدام حساب Microsoft
تسجيل الدخول أو إنشاء حساب.
مرحباً،
تحديد استخدام حساب مختلف!
لديك حسابات متعددة
اختر الحساب الذي تريد تسجيل الدخول باستخدامه.

الأعراض

عند محاولة إدراج بيانات في جدول مخصص، أو عند تشغيل عملية تقوم بإدراج بيانات في جدول مخصص، ستتلقى رسالة خطأ تشبه ما يلي:

حدث الخطأ SQL Server التالي (أخطاء) أثناء الوصول إلى جدول TableName:



1088، "42000"،[Microsoft][برنامج تشغيل ODBC SQL Server][SQL Server]يتعذر العثور على الكائن "NAVDBName.dbo.CompanyName$ TableName" لأنه غير موجود أو ليس لديك الأذونات.



SQL: SET

IDENTITY_INSERT "NAVDBName". dbo"." CompanyName$ TableName" ON

ملاحظة في هذا المثال، يمثل TableName جدول Microsoft Dynamics NAV الخاص للعميل. يمثل NAVDBName اسم قاعدة بيانات Microsoft Dynamics NAV للعميل. يمثل CompanyName اسم الشركة المعين للعميل في Microsoft Dynamics NAV.



قد تحدث هذه المشكلة في إصدارات Microsoft Dynamics NAV التي تستخدم Microsoft SQL Server قاعدة البيانات.

السبب

تحدث هذه المشكلة إذا كانت الشروط التالية صحيحة:

  • في أحد الحقول في الجدول المشار إليه في رسالة الخطأ، يتم تعيين الخاصية زيادة تلقائية إلى نعم.

  • تقوم عملية INSERT التي تستخدمها ب ملء الحقل الذي تم تعيين خاصية "زيادة تلقائية" له إلى "نعم".

  • ليس لديك أحد الأذونات التالية:

    • عضوية دور خادم SYSADMIN في SQL Server

    • عضوية db_owner قاعدة البيانات لقاعدة بيانات Microsoft Dynamics NAV

    • عضوية db_ddladmin قاعدة البيانات لقاعدة بيانات Microsoft Dynamics NAV

الحل

لحل هذه المشكلة، استخدم أحد الأساليب التالية.

الطريقة الأولى


قم بتعديل عملية INSERT بحيث لا يتم ملء الحقل الذي تم تعيين الخاصية "زيادة تلقائية" له إلى "نعم".

الطريقة الثانية

قم بتعيين الخاصية "زيادة تلقائية" إلى "لا" الحقل ذي الصلة.

ملاحظة قد يتطلب الأسلوبان 1 و2 مساعدة مطور Microsoft Dynamics NAV، خاصة إذا كان التعديل يتطلب تغييرا في التعليمات البرمجية. يجب اختبار هذه التغييرات جيدا قبل تطبيق التغييرات على قاعدة بيانات Microsoft Dynamics NAV مباشرة.

الطريقة 3

منح أذونات Alter في الجدول المخصص لدور التطبيق ذي الصلة (على سبيل المثال، &ndo$shadow، إذا قمت بتحديد نموذج الأمان القياسي) في SQL Server Management Studio.


ملاحظة يتم الكتابة فوق الأذونات التي يتم منحها يدويا للجداول من SQL Server Management Studio عند تشغيل مزامنة أمان في Microsoft Dynamics NAV. لذلك، يجب منح أذونات Alter إلى الجدول المخصص مرة أخرى بعد تشغيل مزامنة الأمان.

مزيد من المعلومات

في Microsoft Dynamics NAV، إذا تم تعيين خاصية "زيادة تلقائية" إلى "نعم" حقل نوع بيانات "عدد صحيح" أو حقل نوع بيانات "عدد صحيح كبير"، يجب ملء الحقل ذي الصلة تلقائيا بقيمة عدد صحيح فريد يتم إنشاؤه بواسطة النظام. تزيادات القيمة المستخدمة لملء الحقل بشكل متتالي لكل سجل جديد يتم إدراجه.

لتنفيذ خاصية "زيادة تلقائية"، يحدد Microsoft Dynamics NAV عمود SQL Server له الخاصية IDENTITY المقترنة به. تتسبب خاصية IDENTITY SQL Server ملء العمود تلقائيا كما هو موضح سابقا. إذا كانت الخاصية IDENTITY في وضع تشغيل عمود SQL Server، فلا يمكن للمستخدمين ملء العمود ذي الصلة بشكل صريح في عبارة INSERT إلا إذا كان لدى المستخدمين أحد الأذونات التالية:

  • عضوية دور خادم SYSADMIN في SQL Server

  • عضوية db_owner قاعدة البيانات لقاعدة بيانات Microsoft Dynamics NAV

  • عضوية db_ddladmin قاعدة البيانات لقاعدة بيانات Microsoft Dynamics NAV

بالإضافة إلى امتلاك هذه الأذونات، يجب على المستخدمين أيضا تشغيل الأمر التالي لإكمال عملية INSERT.

SET IDENTITY_INSERT <table_name> عند ظهور رسالة الخطأ المذكورة في المقطع "الأعراض"، يحاول Microsoft Dynamics NAV تشغيل العبارة SET هذه في SQL Server.

إن أسلوب تعبئة عمود له الخاصية IDENTITY بشكل صريح هو أسلوب غير مطلوب عادة. عادة ما يتم ملء الأعمدة التي تملك الخاصية IDENTITY تلقائيا SQL Server.

هل تحتاج إلى مزيد من المساعدة؟

الخروج من الخيارات إضافية؟

استكشف مزايا الاشتراك، واستعرض الدورات التدريبية، وتعرف على كيفية تأمين جهازك، والمزيد.

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

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

ما مدى رضاك عن جودة اللغة؟
ما الذي أثّر في تجربتك؟
بالضغط على "إرسال"، سيتم استخدام ملاحظاتك لتحسين منتجات Microsoft وخدماتها. سيتمكن مسؤول تكنولوجيا المعلومات لديك من جمع هذه البيانات. بيان الخصوصية.

نشكرك على ملاحظاتك!

×