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

جملة SQL للمسح من جدولين Mater and Details فى نفس الوقت

مغلق
بدأه cdcase في 9 يونيو 2006 · 14 رد · 1,480 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مرحباااااااااا

ما هى جملة ال SQL

التى تستخدم لحذف جدولين Mater and Details

بدون ما أستخدم طريقة مسح من ال Details الاول وبعد ذلك أمسح من ال Master

أو العكس

علما بأنى جربت هذا الكود ولم يفلح

dim StrDelete as string
StrDelete="delete from table1 inner join table2 on table1.clum=table2.clun where table1.clum=1

ولم يفلح هذا الكود فجربت الاخر

dim StrDelete as string
StrDelete ="delete from (select * from table1 left join table2 on  table1.clum=table2.clun)where table1.clum=1

ولم يفح أيضا أرجو الافادة

تحياتى...... ;) .

قال رسول الله صلى الله عليه وسلم

يكبر بن أدام ويكبر معه شيئان كثرة المال وطول العمر

صدق رسول الله صلى الله عليه وسلم

قال عمر بن الخطاب رضي الله عنه

نحن قوم أعزنا الله بالإسلام فإذا إبتغينا العزة فى غيره أذلنا الله

#2

بكل صراحة لم أستطع أن أفهم ماذا تريد أن تفعله ؟؟؟

أرجوا التوضيح

سلام

#3

السلام عليكم ....

انا اقف بجوار اخي cdcase في هذا السؤال

وشكرا

#4

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

بكل بساطة أخي CdCase يمكن أن تعمل قادح على جدول الـ Master حيث يأخذ فيه قيمة المفتاح الأساسي من السجل المحذوف و يحذف ما يقابله من سجلات في

جدول الـ Details .. :)

دروس و كتب مفيدة----------------------كتيب الإجرائيات المخزنةتعرف على اللغة Transact SQL <<-->> كتيب عن تنصيب قواعد البيانات Sql Server باللغة العربية كتيب عن إنشاء قواعد البيانات في SQL Server باللغة العربية <<-->> درس مع الأمثلة عن المؤشرات و التعامل معها في الـ T-SQLالعبارات الشرطية و الحلقات في T-SQL <<-->> شرح لبعض الـ Extended Stored Procedure استخدام مكتبات الـ Dot Net الخاصة بك في الـ Sql Server 2005 <<-->> التعامل مع المصفوفات من خلال الـ T-SQLتعابير الجداول الشائعة في SQL Server 2005 <<-->>الاتصال بالأداة SQL Server Management Studioحلول سريعة و لمحات برمجية --------------------------------التصدير إلى إكسل : طريقة أولى : طريقة بسطر واحد من الكود <<-->> طريقة ثانية : طريقة تحتاج إنشاء إجرائية مخزنةً تجهيز بيانات جدول بالصيغة XML تمهيداً لحفظها كملف <<-->> تصدير البيانات إلى ملفات نصية برمجياً إغلاق جميع الإتصالات المفتوحة بقاعدة بيانات محددة .. تمهيداً لاسترجاعها أو حذفها <<-->> الاستعلام بناء على وقت مخزن بالصيغة العربية ضمن حقل نصي ..حذف السجلات المتكررة و إبقاء عدد محدد منها في جدول.. <<-->> أسرع طريقة لحذف سجلات جدول كيف احصل على اسم جهازي والباسوورد باستخدام T-SQL <<-->> حشر أنواع الصور المختلفة في حقل من نوع Image باستخدام إجرائية مخزنة .كيف تعرف أنواع الصور المخزنة في حقل من نوع Image .. <<-->> إجرائيات مخزنة ببارامترات ديناميكية مفيدة جداً للاستعلامات استخدام رقم الحقل بدلاً من الإسم في عبارات الإستعلام <<-->> من هو أضخم الجداول في قاعدة بياناتي ؟معرفة زمن تنفيذ الإجرائيات ( لتختار الطريقة الأسرع بين إجرائياتك المخزنة ) <<-->> التعامل مع الـ Rules برمجياً الحصول على آخر صف في الجدول <<-->> قراءة ملفات XML باستخدام T-SQL برمجياً (مثال مرفق)سحب بيانات ملف إكسل إلى الـ SQL Server <<-->> تشفير النسخة الاحتياطية بكلمة مرور <<-->> التخلص من البيانات المكررة <<-->> حل مشكلة التاريخ الهجريDifferential Backup بالتعريف---------- لا إله إلا الله .. محمد رسول الله

أخوكم في الله..  Imad Ozone

#5

أوووه

ممكن تستخدم قادح و هذا أفضل شيئ

و إذا كان هنالك علاقة بين الجدولين و تكون 1:M

عليك بإستخدام

On Delete Cascade

Bye

#6

مرحبااااااااا

أخى فى الله

Desigen كتب:
بكل صراحة لم أستطع أن أفهم ماذا تريد أن تفعله ؟؟؟

أرجوا التوضيح

سلام

الموضوع بسيط وهو انى عندى جدولين Master and detail

هنفترض ان الجدول الاول(master) اسمهTable1 والثانى(details) اسمه Table2

ومربوطين ببعض عن طريق المفتاح الاساسي واسمه Clum بعلاقه one to many

المطلوب عاوز جملة SQL

لما امسح ---> أمسح البيانات من الجدولين المربوطين فى نفس الوقت

يعنى

حذف بيانات الجدولين Mater and Details عن طريق شرط معين مثلا مسح البيانات اللى تحتوى على المفتاح الاساسي رقم 1 من الجدولين

بدون ما أستخدم طريقة مسح من ال Details الاول وبعد ذلك أمسح من ال Master

أو العكس

أتمنى ان اكون اوضحت المشكلة بششكل صحيح

بالنسبة لاخى

imadouzoun

بكل بساطة أخي CdCase يمكن أن تعمل قادح على جدول الـ Master حيث يأخذ فيه قيمة المفتاح الأساسي من السجل المحذوف و يحذف ما يقابله من سجلات في 

جدول الـ Details

ما معنى قادح علما بأنى أستخدم فيجوال بيزك دوت نت 2003 للتطبيق الحالى

تحياتى........ ;) .....

Desigen كتب:
أوووه

ممكن تستخدم قادح و هذا أفضل شيئ

و إذا كان هنالك علاقة بين الجدولين و تكون 1:M

عليك بإستخدام

On Delete Cascade

مرحبا اخى

هل من الممكن ان تشرح لى بمثال ما هى ال

On Delete Cascade

لانى لا اعلم عنها شىء

تحياتى..........

قال رسول الله صلى الله عليه وسلم

يكبر بن أدام ويكبر معه شيئان كثرة المال وطول العمر

صدق رسول الله صلى الله عليه وسلم

قال عمر بن الخطاب رضي الله عنه

نحن قوم أعزنا الله بالإسلام فإذا إبتغينا العزة فى غيره أذلنا الله

#7

عند إنشائك للجدول T1 , T2 و يكون كالتالي


T2 ( Number Int Foriegn Key T1 ( Number ) On Delete Cascade )
T1 ( Number Int Primary Key )

اللآن عندما تقوم بإضافة سجلات في الجدول الثاني

يجب أن يكون لها أصل في الجدول الأول

و عندما تريد حذف أصل سيتم حذف جميع الأبناء له

سلام

#8

السلام عليكم

أفضل انك تستخدم العلاقات Referential Integrity Cascading

مثال

ALTER TABLE Details ADD CONSTRAINT FK_Details_master
  FOREIGN KEY(id)
 REFERENCES master(id) ON DELETE CASCADE ON UPDATE CASCADE

أو استخدام ال TRIGGER

مثال

CREATE TRIGGER DelCascade ON master
  FOR DELETE
AS DELETE  FROM details WHERE details.id = deleted.id

و ال TRIGGER ده بيحصله fire في حاله الحذف من ال master table

و يقوم بحذف جميع ال rows المقابله في details table

تم تعديل هذه المشاركة بواسطة walcom في 10 يونيو 2006 في 12:08

#9

كما ذكر الأخوة توجد عدة طرق لمسح الdetails المتعلقة بالmaster

1- طريقة الon delete cascade constraint التي ذكرها الأخوين design و أحمد طاهر الباز

2- طريقة delete trigger على الجدول الmaster التي ذكرها الأخ عماد.

3- طريقة لم يذكرها الأخوة:

transaction يقوم أولا بحصر عدد سجلات ال details ويحذفها إذا لم يكن العدد صفريا، ومن ثم حذف الmaster data.

يفضل أن يكون الtransaction داخل stored procedure.

أخيرا أرجو من الأخوة استعمال علامات code و SQL لحصر وتنظيم الأكواد داخل مشاركاتهم.

وفقنا الله جميعا لكل ما يحب ويرضى

:)

فكر بطريقة أخرى

#10

مرحباااا :D

اولا اود ان أشكر الاخوة الكرام

walcom
أحمد طاهر الباز
Desigen

جزاكم الله خيرا ونفع الله بعلمكم إخوانكم المسلمين وجزاكم بكل حرف شجرة فى الجنة

ثانيا يبدو بخبرتى الضعيفة فى شرح المشاكل انى لم اشرح مشكلتى بشكل كامل

ولكن ينقص انى لم أقول انى استخدم أكسس كقاعدة بيانات وقيجوال بيزيك 2003

وكل ما اريده هو طلب كود بسيط او بمعنى اصح جملةSQL لتقوم بمسح Master and Details معا بشرط معين

لانفذهاااا عن طريق برنامجى وليس عن طريق ال SQL server

اتمنى ان تقبلوا اعتذارى ان كانت المشاركات السابقة تحل مشكلتى ولم اعلم لانى مازلت فى بداية الطريق

تحياتى

;)

قال رسول الله صلى الله عليه وسلم

يكبر بن أدام ويكبر معه شيئان كثرة المال وطول العمر

صدق رسول الله صلى الله عليه وسلم

قال عمر بن الخطاب رضي الله عنه

نحن قوم أعزنا الله بالإسلام فإذا إبتغينا العزة فى غيره أذلنا الله

#11

السلام عليكم

ياأخ cdcase ولا يهمك بس ده منتدي sql server

و بطلب من الأخ walcom انه يقولي الذاي انظم الكود

بصراحه مش عارف

و جزاكم الله خير

#12
أحمد طاهر الباز كتب:
السلام عليكم

ياأخ cdcase ولا يهمك بس ده منتدي sql server

و بطلب من الأخ walcom انه يقولي الذاي انظم الكود

بصراحه مش عارف

و جزاكم الله خير

مرحبا اخى فى الله

جزاك الله خيرا واتمنى لك التوفيق باذن العليم الحكيم

انا اعرف انه منتدى خاص بال sql

والله انا طرحت الموضوع فى منتدى الفيجوال بيزيك دوت نت ولكن المشرف حوله على هذا المنتدى وليس لى يد فى هذا

ومازالت مشكلتى مطروحة

تحياتى

قال رسول الله صلى الله عليه وسلم

يكبر بن أدام ويكبر معه شيئان كثرة المال وطول العمر

صدق رسول الله صلى الله عليه وسلم

قال عمر بن الخطاب رضي الله عنه

نحن قوم أعزنا الله بالإسلام فإذا إبتغينا العزة فى غيره أذلنا الله

#13

يوجد منتدى خاص بالأكسس

بس معليش

بعد انشاء الجداول تذهب إلى

Tools -> Relashoinship

تختار الجداول المراد عمل علاقة بينها

تقوم بسحب المفتاح الأساي إلى الفرعي

فيظهر مربع حوار Edit Relationship

تختار مربع الحوار Enforce Relational Entity

و تختار بعدها Cascade Delete

سلام

#14
أحمد طاهر الباز كتب:
السلام عليكم

و بطلب من الأخ walcom انه يقولي الذاي انظم الكود

بصراحه مش عارف

و جزاكم الله خير

ضع الأكواد بين علامتي code و code/ أو sql و sql/

كل العلامات محصورة بين القوسين []

فكر بطريقة أخرى

#15
Desigen كتب:
يوجد منتدى خاص بالأكسس

بس معليش

بعد انشاء الجداول تذهب إلى

Tools -> Relashoinship

تختار الجداول المراد عمل علاقة بينها

تقوم بسحب المفتاح الأساي إلى الفرعي

فيظهر مربع حوار Edit Relationship

تختار مربع الحوار Enforce Relational Entity

و تختار بعدها Cascade Delete

سلام

مرحبااااااااااا

مشكور اخى ;)

تحياتى....

قال رسول الله صلى الله عليه وسلم

يكبر بن أدام ويكبر معه شيئان كثرة المال وطول العمر

صدق رسول الله صلى الله عليه وسلم

قال عمر بن الخطاب رضي الله عنه

نحن قوم أعزنا الله بالإسلام فإذا إبتغينا العزة فى غيره أذلنا الله

هذا الموضوع مغلق.

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