كيفية استيراد البيانات باستخدام SSIS للحصول على GUIDS المتسلسلة؟

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

سؤال

هل هناك على أي حال لاستيراد البيانات إلى SSIS حيث أتوقع أن تكون PKS GUIDS متتابعة؟

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

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

المحلول

أنا لا أستخدم GUIDS كـ PKS ولكن لا يمكنك تعيين NewSequentialId () كقيمة افتراضية ، فإن أي إدراج إلى DATBASE الخاص بك سوف يستخدم ذلك.

نصائح أخرى

هل نظرت إلى جملة الإخراج?

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

فيما يلي مثال على استخدامه:

DECLARE @roles TABLE (
    SecurityRoleId int
)

INSERT dbo.SecurityRole (
    SecurityRoleName,
    SecurityRoleDescription,
    LastUpdatedGuid
)
OUTPUT
    INSERTED.SecurityRoleId
INTO @roles
SELECT
    SecurityRoleName,
    SecurityRoleDescription,
    NEWID()
FROM @SecurityRole


INSERT INTO dbo.SecurityRoleDtl (
    SecurityRoleId,
    MemberSecurityRoleId
)
SELECT
    1,
    SecurityRoleId
FROM @roles
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top