/********* تصدير إلى التفوق
exec master..xp_cmdshell 'bcp تسويةb.dbo.shanghu خارج c:temp1.xls -c -q -s"gnetdata/gnetdata" -u"sa" -p""'
/************ استيراد اكسل
يختار *
من مصدر البيانات المفتوح ('microsoft.jet.oledb.4.0'،
'مصدر البيانات = "c:test.xls"؛ معرف المستخدم = المشرف؛ كلمة المرور =؛ الخصائص الموسعة = Excel 5.0')...xactions
حدد cast(cast(رقم الحساب كرقم رقمي(10,2)) كـ nvarchar(255))+' ' الاسم المستعار المحول
من مصدر البيانات المفتوح ('microsoft.jet.oledb.4.0'،
'مصدر البيانات = "c:test.xls"؛ معرف المستخدم = المشرف؛ كلمة المرور =؛ الخصائص الموسعة = Excel 5.0')...xactions
/** استيراد ملف نصي
exec master..xp_cmdshell 'bcp dbname..tablename in c:dt.txt -c -sservername -usa -ppassword'
/** تصدير ملف نصي
exec master..xp_cmdshell 'bcp "dbname..tablename" خارج c:dt.txt -c -sservername -usa -ppassword'
يجب أن تكون هذه الجملة محاطة بعلامات اقتباس
أو
exec master..xp_cmdshell 'bcp "select * from dbname..tablename" queryout c:dt.txt -c -sservername -usa -ppassword'
تصدير إلى نص txt، مفصولاً بفواصل
exec master..xp_cmdshell 'bcp "اسم المكتبة..اسم الجدول" خارج "d:tt.txt" -c -t ,-u sa -p كلمة المرور'
اسم مكتبة إدراج بالجملة.. اسم الجدول
من "ج:test.txt"
مع (
فاصل الحقل = ';',
روترمينيتور = 'n'
)
--/* ملف dbase IV
اختر * من
openrowset('microsoft.jet.oledb.4.0'
,'dbase iv;hdr=no;imex=2;database=c:','select * from [Customer Data 4.dbf]')
--*/
--/* ملف dbase III
اختر * من
openrowset('microsoft.jet.oledb.4.0'
,'dbase iii;hdr=no;imex=2;database=c:','select * from [Customer Data 3.dbf]')
--*/
--/* قاعدة بيانات فوكسبرو
حدد * من openrowset('msdasql',
'برنامج التشغيل = برنامج تشغيل Microsoft Visual Foxpro؛ نوع المصدر = dbf؛ Sourcedb = c:'،
"اختر * من [aa.dbf]")
--*/
/*********************استيراد ملف dbf*********************/
حدد * من openrowset('msdasql',
'driver=microsoft visual foxpro driver;
sourcedb=e:vfp98data;
نوع المصدر=dbf',
'اختر * من العميل حيث البلد! = طلب "الولايات المتحدة الأمريكية" حسب البلد')
يذهب
/************************ تصدير إلى dbf ******************/
إذا كنت تريد تصدير البيانات إلى جدول foxpro الذي تم إنشاؤه (أي الموجود)، فيمكنك استخدام عبارة SQL التالية مباشرة
أدخل في openrowset('msdasql',
'برنامج التشغيل = برنامج تشغيل Microsoft Visual Foxpro؛ نوع المصدر = dbf؛ Sourcedb = c:'،
"اختر * من [aa.dbf]")
اختر * من الجدول
يوضح:
sourcedb=c: يحدد المجلد الذي يوجد به جدول foxpro
يحدد aa.dbf اسم ملف جدول foxpro.
/******************التصدير للوصول*************************/
أدخل في openrowset('microsoft.jet.oledb.4.0'،
'x:a.mdb';'admin';'',جدول) حدد * من اسم قاعدة البيانات..b الجدول
/********************* وصول الاستيراد***************************/
أدخل في الجدول b selet * من openrowset('microsoft.jet.oledb.4.0',
'x:a.mdb';'admin';'',جدول)
******************** استيراد ملف XML
أعلن @idoc int
أعلن @doc varchar(1000)
- نموذج مستند XML
تعيين @doc ='
<الجذر>
<customer cid= "c1" name="janine" city="issaquah">
<طلب oid = "o1" تاريخ = "1/20/1996" المبلغ = "3.5" />
<order oid = "o2" date = "4/30/1997" المبلغ = "13.4"> كان العميل راضيًا جدًا
</الطلب>
</العميل>
<customer cid = "c2" name = "ursula" city = "oelde" >
<طلب oid = "o3" تاريخ = "14/07/1999" المبلغ = "100" ملاحظة = "لفه باللون الأزرق"
أبيض أحمر">
<عاجل>مهم</عاجل>
عميل سعيد.
</الطلب>
<طلب oid = "o4" تاريخ = "1/20/1996" المبلغ = "10000"/>
</العميل>
</الجذر>
'
- إنشاء تمثيل داخلي لمستند XML.
exec sp_xml_preparedocumentإخراجidoc،doc
- تنفيذ عبارة تحديد باستخدام موفر مجموعة الصفوف openxml.
يختار *
من openxml (@idoc, '/root/customer/order', 1)
مع (id char(5)،
تعليق ntext 'نص ()')
exec sp_xml_removedocument @idoc
/************************استيراد قاعدة البيانات بأكملها************************ ***** *******************/
تم تنفيذ الإجراء المخزن باستخدام bcp
/*
تنفيذ الإجراءات المخزنة لاستيراد/تصدير البيانات
وفقًا لمعلمات مختلفة، يمكنك استيراد/تصدير مثال استدعاء قاعدة البيانات/الجدول الفردي بالكامل:
- مثال على مكالمة التصدير
----تصدير جدول واحد
exec file2table 'zj','','','xzkh_sa..معلومات المنطقة','c:zj.txt',1
---- تصدير قاعدة البيانات بأكملها
exec file2table 'zj','','','xzkh_sa','c:docman',1
--استيراد مثال على المكالمة
----استيراد جدول واحد
exec file2table 'zj','','','xzkh_sa..معلومات المنطقة','c:zj.txt',0
----استيراد قاعدة البيانات بأكملها
exec file2table 'zj','','','xzkh_sa','c:docman',0
*/
إذا كان موجودًا (اختر 1 من كائنات النظام حيث name='file2table' وobjectproperty(id,'isprocedure')=1)
عملية إسقاط file2table
يذهب
إنشاء file2table الإجراء
@servername varchar(200) - اسم الخادم
,@username varchar(200) --اسم المستخدم، إذا كنت تستخدم طريقة التحقق nt، فسيكون فارغًا''
,@password varchar(200) --Password
,@tbname varchar(500) --database.dbo.table name. إذا لم تحدد: اسم .dbo.table، فسيتم تصدير كافة جداول المستخدم الخاصة بقاعدة البيانات.
,@filename varchar(1000) - مسار الاستيراد/التصدير/اسم الملف إذا كانت المعلمةtbname تشير إلى تصدير قاعدة البيانات بأكملها، فإن هذه المعلمة هي مسار تخزين الملف، ويستخدم اسم الملف تلقائيًا اسم الجدول.txt.
,@isout bit --1 هو تصدير، و0 هو استيراد
مثل
أعلن @sql varchar (8000)
إذا كان @tbname مثل '%.%.%' - إذا تم تحديد اسم جدول، فسيتم تصدير جدول واحد مباشرة
يبدأ
تعيين @sql='bcp '+@tbname
+الحالة عند @isout=1 ثم 'out' else 'في النهاية
+' " '+@اسم الملف+' " /w'
+' /s '+@servername
+الحالة عندما تكون فارغة(@اسم المستخدم,'')='' ثم '' else ' /u '+@username end
+' /p '+isnull(@password,'')
exec master..xp_cmdshell @sql
نهاية
آخر
ابدأ - قم بتصدير قاعدة البيانات بأكملها، وحدد المؤشرات، وأزل جميع جداول المستخدم
أعلن @m_tbname varchar(250)
إذا كان صحيحًا (@filename,1)<>'' قم بتعيين @filename=@filename+''
قم بتعيين @m_tbname='declare #tb cursor لتحديد الاسم من '+@tbname+'..sysobjects حيث xtype=''u'''
تنفيذي(@m_tbname)
افتح #ت.ب
جلب التالي من #tb إلى @m_tbname
بينما @@fetch_status=0
يبدأ
تعيين @sql='bcp '+@tbname+'..'+@m_tbname
+الحالة عند @isout=1 ثم 'out' else 'في النهاية
+' " '+@filename+@m_tbname+'.txt " /w'
+' /s '+@servername
+الحالة عندما تكون فارغة(@اسم المستخدم,'')='' ثم '' else ' /u '+@username end
+' /p '+isnull(@password,'')
exec master..xp_cmdshell @sql
جلب التالي من #tb إلى @m_tbname
نهاية
إغلاق # السل
إلغاء تخصيص # السل
نهاية
يذهب
/************************ من التفوق إلى النص ********************** ****** *******************/
تريد استخدامها
حدد * في opendatasource(...) من opendatasource(...)
تنفيذ استيراد محتويات ملف اكسل إلى ملف نصي
لنفترض أن هناك عمودين في برنامج Excel، العمود الأول هو الاسم، والعمود الثاني هو رقم الحساب (16 رقمًا)
ويتم تقسيم رقم الحساب البنكي إلى قسمين بعد تصديره إلى ملف نصي، يتم فصل أول 8 أرقام وآخر 8 أرقام.
إذا كنت تريد إدراجه باستخدام البيان أعلاه، فيجب أن يكون الملف النصي موجودًا ويحتوي على سطر واحد: الاسم، رقم الحساب البنكي 1، رقم الحساب البنكي 2
ثم يمكنك استخدام العبارة التالية للإدراج. لاحظ أنه يمكن تعديل اسم الملف والدليل وفقًا لموقفك الفعلي.
أدخل في
مصدر البيانات المفتوح ('microsoft.jet.oledb.4.0'
,'نص;HDR=نعم;قاعدة البيانات=c:'
)...[aa#txt]
--،أأ#نص)
--*/
حدد الاسم، رقم الحساب البنكي 1 = اليسار (رقم الحساب البنكي، 8)، رقم الحساب البنكي 2 = اليمين (رقم الحساب البنكي، 8)
من
مصدر البيانات المفتوح ('microsoft.jet.oledb.4.0'
,'excel 5.0;hdr=yes;imex=2;database=c:a.xls'
--، ورقة1$)
)...[ورقة1$]
إذا كنت تريد إدراج ملفات نصية وإنشائها مباشرةً، فاستخدم bcp
أعلن @sql varchar(8000)،@tbname varchar(50)
- قم أولاً باستيراد محتويات جدول Excel إلى جدول مؤقت عالمي
حدد @tbname='[##temp'+cast(newid() as varchar(40))+']'
,@sql='اختر الاسم، رقم الحساب البنكي 1=اليسار (رقم الحساب البنكي، 8)، رقم الحساب البنكي 2 = اليمين (رقم الحساب البنكي، 8)
إلى "+@tbname+" من
مصدر البيانات المفتوح (''microsoft.jet.oledb.4.0''
,''excel 5.0;hdr=yes;imex=2;database=c:a.xls''
)...[ورقة1$]'
تنفيذي (@sql)
- ثم استخدم bcp للتصدير من الجدول المؤقت العمومي إلى ملف نصي
تعيين @sql='bcp " '+@tbname+' " خارج "c:aa.txt" /s"(محلي)" /p"" /c'
exec master..xp_cmdshell @sql
--حذف الجدول المؤقت
exec('إسقاط الجدول '+@tbname )
الإجراء المخزن لاستيراد وتصدير الملفات إلى قاعدة البيانات باستخدام bcp:
/*--bcp-استيراد وتصدير الملفات الثنائية
يدعم استيراد/تصدير حقول الصور والنص والنص
الصورة مناسبة للملفات الثنائية، وntext مناسب لملفات البيانات النصية
ملاحظة: عند الاستيراد، سيتم استبدال كافة الصفوف التي تستوفي الشروط
عند التصدير، سيتم أيضًا تصدير كافة الأسطر التي تستوفي الشروط إلى الملف المحدد.
يستخدم هذا الإجراء المخزن bcp فقط لتنفيذ Zou Jian 2003.08-----------------*/
/*--مثال للاتصال
- تصدير البيانات
exec p_binaryio 'zj','','','acc_demo data..tb','img','c:zj1.dat'
- تصدير البيانات
exec p_binaryio 'zj','','','acc_demo data..tb','img','c:zj1.dat','',0
--*/
إذا كان موجودًا (اختر * من dbo.sysobjects حيث id = object_id(n'[dbo].[p_binaryio]') وobjectproperty(id, n'isprocedure') = 1)
إجراء الإفلات [dbo].[p_binaryio]
يذهب
إنشاء بروك p_binaryio
@servename varchar (30)،--اسم الخادم
@ اسم المستخدم varchar (30)، - اسم المستخدم
@password varchar (30)، --password
@tbname varchar (500)، --قاعدة البيانات..اسم الجدول
@fdname varchar (30)، - اسم الحقل
@fname varchar (1000)، --directory + اسم الملف، الاستخدام/الكتابة فوق أثناء المعالجة: @filename+.bak
@tj varchar (1000)='', --شروط المعالجة لاستيراد البيانات، إذا كان الشرط يحتوي علىfdname، فيرجى تحديد بادئة اسم الجدول
@isout bit=1 --1 تصدير ((افتراضي)، 0 استيراد
مثل
أعلن @fname_in varchar(1000) --bcp اسم ملف استجابة المعالجة
,@fsize varchar(20)--حجم الملف المراد معالجته
,@m_tbname varchar(50) - اسم الجدول المؤقت
،@sql فارتشار (8000)
- احصل على حجم الملف المستورد
إذا @isout=1
تعيين @fsize='0'
آخر
يبدأ
إنشاء جدول #tb (اسم اختياري varchar (20)، الحجم int
، تاريخ الإنشاء varchar(10)، وقت الإنشاء varchar(20)
، تاريخ عملية الكتابة الأخيرة varchar(10)، وقت عملية الكتابة الأخيرة varchar(20)
، تاريخ الوصول الأخير varchar (10)، آخر وقت وصول varchar (20)، int المميز)
أدخل في #tb
exec master..xp_getfiledetails @fname
حدد @fsize=sizefrom #tb
إسقاط الجدول # السل
إذا كان @fsize فارغًا
يبدأ
طباعة "لم يتم العثور على الملف"
يعود
نهاية
نهاية
- إنشاء ملف استجابة لمعالجة البيانات
اضبط @m_tbname='[##temp'+cast(newid() as varchar(40))+']'
اضبط @sql='select * في '+@m_tbname+' من (
حدد فارغة كنوع
Union all حدد 0 كبادئة
Union all حدد "+@fsize+" كطول
Union الكل حدد null كنهاية
Union all حدد null كتنسيق
) أ'
تنفيذي (@sql)
حدد @fname_in=@fname+'_temp'
,@sql='bcp " '+@m_tbname+' " خارج " '+@fname_in
+'" /s" '+@servename
+ الحالة عندما تكون فارغة (@ اسم المستخدم، '') = '' ثم ''
آخر '"/u" '+@نهاية اسم المستخدم
+'" /p"'+isnull(@password,'')+'" /c'
exec master..xp_cmdshell @sql
--حذف الجدول المؤقت
تعيين @sql='إسقاط الجدول '+@m_tbname
تنفيذي (@sql)
إذا @isout=1
يبدأ
تعيين @sql='bcp "اختر أعلى 1 '+@fdname+' من '
+@tbname+case فارغ(@tj,'') عندما '' ثم ''
آخر 'حيث ' +@tj النهاية
+'" الاستعلام " '+@fname
+'" /s" '+@servename
+ الحالة عندما تكون فارغة (@ اسم المستخدم، '') = '' ثم ''
آخر '"/u" '+@نهاية اسم المستخدم
+'" /p"'+isnull(@password,'')
+'" /i" '+@fname_in+'"'
exec master..xp_cmdshell @sql
نهاية
آخر
يبدأ
- إعداد الجداول المؤقتة لاستيراد البيانات
اضبط @sql='اختر أعلى 0 '+@fdname+' في '
+@m_tbname+' من ' +@tbname
تنفيذي (@sql)
- استيراد البيانات إلى جدول مؤقت
قم بتعيين @sql='bcp " '+@m_tbname+' " في " '+@fname
+'" /s" '+@servename
+ الحالة عندما تكون فارغة (@ اسم المستخدم، '') = '' ثم ''
آخر '"/u" '+@نهاية اسم المستخدم
+'" /p"'+isnull(@password,'')
+'" /i" '+@fname_in+'"'
exec master..xp_cmdshell @sql
- استيراد البيانات إلى الجداول الرسمية
تعيين @sql='update '+@tbname
+' set '+@fdname+'=b.'+@fdname
+' من '+@tbname+' أ،'
+@m_tbname+' ب'
+الحالة فارغة(@tj,'') عندما '' ثم ''
آخر 'حيث ' +@tj النهاية
تنفيذي (@sql)
--حذف الجدول المؤقت لمعالجة البيانات
تعيين @sql='إسقاط الجدول '+@m_tbname
نهاية
--حذف ملف إجابات معالجة البيانات
تعيين @sql='del '+@fname_in
exec master..xp_cmdshell @sql