الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الإضافة وال Primary Key

بدأه kathy في 6 ديسمبر 2008 · 7 رد · 1,254 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه

أقوم بإضافة بيانات لجدول يحتوي على primary key , طبعاً أنا لا أريد أن يكون الزيادة لل primary تلقائية وبالتالي فإني قبل القيام بعملية الإضافة أضطر أن أقوم بالبداية بعمل select يأخذ آخر رقم ومن ثم أقوم بعملية الإضافة

هذة العملية تأخذ وقت من ووقت تنفيذ العملية ,هل يمكن أن أطبق طريقة أخرى أفضل وتحقق أداء أفضل ,,,, مثلا على سبيل المثال أنفذ جملة الإضافة مباشرة في حال تكرر primary سيحدث خطأ أحاول أن أمسك رقم الخطأ بحيث عندما ينتج رقم الخطأ أستطيع أن أميز أنه بسبب ال primary وأوضح ذلك للمستخدم وطبعا عملية الإضافة لن تتم ؟؟؟ مارأيكم بهذا الحل أم أن هناك حل أفضل؟؟؟؟؟؟

شكرا

#2

وليه الدوخه دي !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

انت ايه الحاله بتاعت البرنامج بتاعك بالظبط ؟

#3

مافيش دوخة في الموضوع ولاحاجة بس في متطلبات معينة تكون خاصة بالأنظمة يتوجب عليك أن يكون ال primary الزيادة فيه غير تلقائية وبالتالي فإنك قبل كل عملية إضافة تضطر لفحص هل هذا الرقم موجود من قبل أم لا , طيب أنا لاأريد مع كل عملية إضافة أقوم بعملية الفحص هذة لأن هذا سيأخذ من وقت معالجة العملية ,,, فما هى أنسب الحلول التي يمكن عملها هنا

أرجو أن تكون الفكرة واضحة

#4

إذا عليك القيام بعملية select للتأكد بعدم وجود الرقم ثم الاضافه

joseph.gif

logo.gif

CCNA 640-802

مدونتي

#5
اقتباس
إذا عليك القيام بعملية select للتأكد بعدم وجود الرقم ثم الاضافه

وهذا ماذكرت أني أقوم بعمله

اقتباس
أقوم بإضافة بيانات لجدول يحتوي على primary key , طبعاً أنا لا أريد أن يكون الزيادة لل primary تلقائية وبالتالي فإني قبل القيام بعملية الإضافة أضطر أن أقوم بالبداية بعمل select يأخذ آخر رقم ومن ثم أقوم بعملية الإضافة

هذة العملية تأخذ وقت من ووقت تنفيذ العملية ,هل يمكن أن أطبق طريقة أخرى أفضل وتحقق أداء أفضل ,,,, مثلا على سبيل المثال أنفذ جملة الإضافة مباشرة في حال تكرر primary سيحدث خطأ أحاول أن أمسك رقم الخطأ بحيث عندما ينتج رقم الخطأ أستطيع أن أميز أنه بسبب ال primary وأوضح ذلك للمستخدم وطبعا عملية الإضافة لن تتم ؟؟؟ مارأيكم بهذا الحل أم أن هناك حل أفضل؟؟؟؟؟؟

اقتباس
قبل كل عملية إضافة تضطر لفحص هل هذا الرقم موجود من قبل أم لا , طيب أنا لاأريد مع كل عملية إضافة أقوم بعملية الفحص هذة لأن هذا سيأخذ من وقت معالجة العملية ,,, فما هى أنسب الحلول التي يمكن عملها هنا

ولكني أبحث عن طريقة وحل أفضل

تم تعديل هذه المشاركة بواسطة kathy في 7 ديسمبر 2008 في 21:48

#6

؟؟؟

#7

السلام عليكم

اولا الاعتماد على الخطأ طريقة غير صحيحة ولا ينصح بها وعلى الاغلب ستأخذ وقتا اكثر بكثير من عملية الفحص .

واتصور افضل طريقة بعد الترقيم التلقائي في البيئة المتععدة المستخدمين هي عدم اعطاء رقم الا عند التخزين مباشرة وبالتالي يقل حصول الخطأ الى درجة كبيرة وان امكن ان يكون التخزين باستخدام Stored Proc وبداخله يكون معرفة آخر رقم

#8
اقتباس
اولا الاعتماد على الخطأ طريقة غير صحيحة ولا ينصح بها وعلى الاغلب ستأخذ وقتا اكثر بكثير من عملية الفحص

أنا كمان مقتنعة بكلامك ولكن أريد طريقة لتأكد من ذلك ...

مثلاً أنفذ البرنامج بطريقة عمل الإستعلام لتأكد من عدم وجود القيمة ثم الإضافة , ثم أنفذ البرنامج بطريقة عمل الإضافة مباشرة وفي حال وجود القيمة من قبل أمسك الخطأ عن طريق sql excption

أحسب الزمن في كلا الحالتين من التنفيذ لنرى أي الحالتين تأخذ وقت أطول؟ كيف يمكن أن أعمل ذلك؟؟

مواضيع مشابهة