مجموعة البيانات عند التقطيع xml إلى جداول متعددة في SQL server

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

سؤال

هذا يلي من هذا السؤال:
تعديل XML في SQL server لإضافة عقدة الجذر

بالإضافة إلى المشكلة المطروحة الآن ثابت في هذا السؤال أنا أيضا تقسيم الجدول الموجود في 2 حيث 2 الجدول هو الجدول الفرعي الأول مع المفتاح الأول.

لذلك حاليا

table1(ID, col1, col2, col3....coln)

أصبحت

table1(ID, col1, col2, col3)

و

table2(PK, FK_table1, col4, col5, ...coln)

في هذه اللحظة لم تتم إزالة أي شيء من القائمة جدول ، بإنشائها الثانية ، ولقد اكتشف الإخراج بناء حتى أستطيع أن أدخل في كلا الجدولين في آن واحد ، بما في ذلك وضع PK 1 الجدول 2 كما FK في 1 إدراج - حتى شيء من هذا القبيل ؛

INSERT INTO table1 col1, col2,...etc...

OUTPUT inserted.ID, col1, col2, ....
INTO table2(FK_table1, col1, col2, .... )

Select  col.value('node1[1]', 'int') col1,
 col.value('node2[1]', 'varchar(50)') col2,
....etc......
FROM @xml.nodes('//Items/Item') doc(col)

هذا بنجاح يدخل في كلا الجدولين في آن واحد ولكن تعتمد على حقيقة لم تتم إزالة الأعمدة من جدول1 بعد ، **و* النتائج في 1:1 العلاقة بين الجداول عند ما أحتاجه هو جدول1 أن يكون مجرد الصفوف متميزة col1 col2 ، col3 ، table2 عقد معلومات أكثر تفصيلا

أنا أتساءل إذا أنا ذاهب عن هذا الطريق الصحيح ؟ أنا ذاهب لتكون قادرة على القيام بذلك في 1 الاستعلام أو أنا ذاهب إلى كسر عليه ؟ أنا أفكر أنه قد أجاد xml الأولى إلى جدول1 ثم يفرم مرة أخرى بشكل منفصل في table2, الانضمام على جدول1 للحصول على FK لإدراج?أي شخص فعل هذا الشيء من قبل ؟

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

المحلول

نعم أنا فعلت مشابهة وتستخدم كل الاقتراحات اعتمادا على ما عمل آخر يجب أن أفعل

الخيارات:

  1. أجاد XML مرة واحدة في tabe متغير حدد متميزة من ذلك إلى جدول1 ، حدد في table2

  2. أجاد XML مرتين.

سأكون يميل إلى القيام تكلفة العملية (تمزيق XML) لأول مرة في دفعة واحدة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top