الإدخال المجمع باستخدام الإجراءات المخزنة: استكشاف الأخطاء وإصلاحها
في محاولة لإدراج البيانات بشكل مجمع باستخدام إجراء مخزن، واجه المطور أخطاء في بناء الجملة. كان الهدف هو تكرار استعلام BULK INSERT العامل في الإجراء. فيما يلي تحليل للمشكلة وحلها.
تنشأ المشكلة من محاولة تمرير اسم ملف كمتغير إلى أمر BULK INSERT ضمن الإجراء المخزن. لسوء الحظ، هذه عملية غير مدعومة بواسطة BULK INSERT.
إليك مثال لمحاولة غير ناجحة باستخدام متغير:
DECLARE @filename VARCHAR(255) SET @filename = 'e:\5-digit Commercial.csv' BULK INSERT ZIPCodes FROM @filename WITH
بدلاً من ذلك، يتوقع الأمر BULK INSERT مسار ملف مضمن. للتغلب على هذا القيد، فكر في إنشاء عبارة BULK INSERT كسلسلة ذات اسم ملف ثابت وتنفيذها كـ SQL ديناميكي.
DECLARE @filepath NVARCHAR(500) SET @filepath = N'e:\5-digit Commercial.csv' DECLARE @bulkinsert NVARCHAR(2000) SET @bulkinsert = N'BULK INSERT ZIPCodes FROM ''' @filepath N''' WITH (FIRSTROW = 2, FIELDTERMINATOR = '','', ROWTERMINATOR = ''\n'')' EXEC sp_executesql @bulkinsert
باستخدام SQL الديناميكي، يمكن تنفيذ العبارة التي تم إنشاؤها، وحل أخطاء بناء الجملة التي تمت مواجهتها في تنفيذ الإجراء المخزن الأصلي.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3