سؤال

أنا أكتب أداة مساعدة صغيرة لنسخ قاعدة بيانات من قاعدة بيانات ODBC الخاصة بمكتبة ODBC في قاعدة بيانات SQL Server.كل شيء يعمل بشكل رائع، إلا عندما أستخدم SQLBulkCopy لنسخ البيانات عبر البيانات.يعمل في معظم الحالات، ولكن ليس عندما يحاول نسخ حقل وقت في تاريخ SQL.أحصل على هذا الخطأ:

القيمة المعينة لنوع من نوعها لا يمكن تحويل مصدر البيانات إلى نوع DateTime من العمود الهدف المحدد.

عندما أقوم بإنشاء المخطط في SQL Server، يجب أن أجري أنواع DETETIME DETTIME DETION في SQL Server، لذلك لا توجد طريقة حول هذا الأمر.أردت استخدام Sqlbulkcopy لذلك لم يكن لدي قراءة كل سجل يدويا في كل طاولة ونفج منطق التفاف حول الحالات الخاصة.قبل أن أذهب إلى أسفل هذا الطريق، هل هناك طريقة أخرى يمكنني القيام بذلك؟ليس لدي أي سيطرة على الإطلاق في مخطط قاعدة البيانات المصدر أو المحتوى.

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

المحلول

أفترض أنك تتعامل مع ما قبل SQL Server 2008. SQL Server 2008 لديه أنواع بيانات التاريخ والوقت.

أعتقد أنك ستحتاج إلى استخدام DataTable مما يتطابق مع مخطط SQL Server وحمل هذا من قارئ المصدر الخاص بك، مما يؤدي إلى تغيير مناسب في أي وقت إلى تاريخ بعد إضافة معلومات تاريخ (E.G. 1/1/1900).ثم استخدم Writetoserver (DataTable).قد ترغب في القيام بذلك في دفعات، لأنك قد تستخدم مجموعة من الذاكرة قراءة كل شيء في DataTable.

أي سبب معين لا يمكنك استخدام SSIS؟

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