سؤال

أريد تصدير بعض بيانات SQL Server 2005 إلى تنسيق CSV (مفصولة بفواصل مع علامات اقتباس). أستطيع أن أفكر في الكثير من الطرق المعقدة للقيام بذلك، لكنني أريد أن أفعل ذلك الصحيح طريق. لقد بحثت في BCP، لكنني لا أستطيع معرفة كيفية وضع علامات الاقتباس حول الحقول (باستثناء تقلصها على القيم الحقلية، وهي قبيحة). أعتقد أنني أستطيع أن أفعل ذلك مع SQLCMD و -O، ولكن هذا يبدو قبيح لنفس السبب.

هل هناك طريقة BCP للقيام بذلك؟

هل هناك طريقة SQLCMD معقولة للقيام بذلك؟

هل هناك بعض الأداة المساعدة البسيطة المدمجة في استوديو الإدارة التي أطلت فقط؟

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

المحلول

في الاستوديو الإداري، حدد قاعدة البيانات، انقر بزر الماوس الأيمن وحدد Tasks->Export Data. وبعد سترى خيارات للتصدير إلى أنواع مختلفة من التنسيقات بما في ذلك CSV، Excel، إلخ.

يمكنك أيضا تشغيل الاستعلام الخاص بك من نافذة الاستعلام وحفظ النتائج إلى CSV.

نصائح أخرى

في الاستوديو الإداري، قم بتعيين خيارات الاستعلام للإخراج إلى الملف، وفي الخيارات -> تعيين نتائج الاستعلام المخرجات إلى ملف لإخراج باستخدام فاصلة كمسؤول.

إذا لم تتمكن من استخدام إدارة الاستوديو، فأني استخدم SQLCMD.

sqlcmd -q "select col1,col2,col3 from table" -oc:\myfile.csv -h-1 -s","

هذه هي الطريقة السريعة للقيام بذلك من سطر الأوامر.

اضطررت إلى القيام بشيء آخر مما قاله Sijin للحصول عليه لإضافة اقتباسات بشكل صحيح في SQL Server Management Studio 2005. انتقل إلى

Tools->Options->Query Results->Sql Server->Results To Grid

ضع شيكا بجانب هذا الخيار:

Quote strings containing list separators when saving .csv results

ملحوظة: الطريقة المذكورة أعلاه لن تعمل من أجل SSMS 2005 Express! بقدر ما أعرف أنه لا توجد طريقة لاقتباس الحقول عند تصدير النتائج إلى .csv باستخدام SSMS 2005 Express.

نعم، هناك فائدة بسيطة للغاية في الاستوديو الإداري، إذا كنت تبحث فقط عن توفير نتائج الاستعلام إلى CSV.

انقر بزر الماوس الأيمن فوق مجموعة النتائج، وحدد "حفظ النتائج باسم". نوع الملف الافتراضي هو CSV.

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

إليك رابط وصف التكوين.

لاستفسارات ADHOC:

إظهار النتائج في وضع الشبكة (CTRL + D)، Run Query، انقر فوق "أعلى مربع الأيسر" في نتائج النتائج، معجون إلى Excel، حفظ باسم CSV. قد تكون قادرا على لصق مباشرة في ملف نصي (لا يمكن تجربته الآن)

أو "النتائج إلى ملف" لديها خيارات أيضا ل CSV

أو "النتائج إلى النص" مع فواصل فاصلة

جميع الإعدادات ضمن الأداة .. البلاوات والاستعلام .. خيارات (أعتقد، لا يمكن التحقق) أيضا

تعيين nocount في

الاقتباسات موجودة، استخدم -W2000 للحفاظ على كل صف على سطر واحد.

في SQL 2005، هذا بسيط: 1. افتح SQL Server Management Studio ونسخ عبارة SQL التي تحتاجها في TSQL، مثل EXEC SP_WHTHERT 2. Query-> نتائج الشبكة 3. قم بتمييز عبارة SQL وتشغيلها 4. تسليط الضوء نتائج البيانات (انقر بزر الماوس الأيسر في منطقة النتائج اليسرى العليا من نتائج النتائج) 5. الآن انقر بزر الماوس الأيمن وحدد حفظ النتائج كما 6. حدد CSV في الحفظ كنوع، أدخل اسم ملف، حدد موقعا وانقر فوق حفظ.

سهل!

في SQL Server 2012 - استوديو الإدارة:

الحل 1:

تنفيذ الاستعلام

انقر بزر الماوس الأيمن فوق نافذة النتائج

حدد حفظ النتائج كما من القائمة

حدد CSV.

الحل 2:

انقر بزر الماوس الأيمن فوق قاعدة البيانات

حدد المهام، وتصدير البيانات

حدد المصدر DB.

حدد الوجهة: وجهة ملف مسطحة

اختيار اسم الملف

حدد تنسيق - محدد

اختر جدول أو كتابة استفسار

اختيار محدد العمود

ملحوظة: يمكنك اختيار مؤهل نصوص يقوم بحذف حقول النص الخاصة بك، مثل اقتباسات.

إذا كان لديك حقل بفواصل، فلا تستخدمك في استخدام فاصلة كمسؤول، لأنه لا يفر من الفواصل. يمكنك اختيار محدد عمود مثل شريط عمودي: | بدلا من فاصلة، أو حرف علامة تبويب. خلاف ذلك، اكتب استعلام يهرب فاصلة أو يحدد حقل varchar الخاص بك.

يعتمد حرف الهروب أو مؤهل النص الذي تحتاجه إلى استخدامه على متطلباتك.

أعتقد أن أبسط طريقة للقيام بذلك هي من Excel.

  1. افتح ملف Excel جديد.
  2. انقر فوق علامة التبويب البيانات
  3. حدد مصادر البيانات الأخرى
  4. حدد SQL Server.
  5. أدخل اسم الخادم الخاص بك وقاعدة البيانات واسم الجدول وما إلى ذلك

إذا كان لديك إصدار أحدث من Excel، فيمكنك إحضار البيانات داخل PowerPivot ثم أدخل هذه البيانات في جدول.

SSIS هي طريقة جيدة جدا للقيام بذلك. يمكن جدولة هذا بعد ذلك باستخدام وظائف وكيل SQL Server.

يمكنك استخدام وحدة Node.js التالية للقيام بذلك مع نسيم:

https://www.npmjs.com/package/mssql-to-csv.

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