هل يمكن أن يحتوي ملف تنسيق الإصدار 8.0 من BCP على اسم عمود يمثل كلمة أساسية في SQL؟

لدي ملف تنسيق حيث أريد أن يكون أحد الأعمدة "مجموعة". أقوم تلقائيًا بإنشاء ملف التنسيق ، ويريد العميل تحميل ملف "group" كأحد الأعمدة. يمكنني تقييده حتى لا يتمكن من استخدام الكلمات الأساسية الخاصة بـ SQL ، ولكن بعد ذلك أحتاج إلى دالة لتحديد ما إذا كان اسم العمود عبارة عن كلمة أساسية خاصة بـ SQL ، لذلك أود أن أؤيد أن يكون المستخدم قادرًا على تسمية عملائه كما يريد. أنا أتساءل إذا كان هذا ممكنًا. حاولت استخدام الأقواس ، ولكن ذلك لم يبدو للعمل. ملفي يبدو مثل:

8.0
1
1 SQLCHAR 0 0 "\r\n" 1  [group] SQL_Latin1_General_CP1_CI_AS
1

2 إجابة

لقد اختبرت هذا بعدة طرق مختلفة على SQL 2005 SP2 (قواعد البيانات الهدف في كلا وضعي التوافق 80 و 90) وهي تعمل بشكل جيد بالنسبة لي باستخدام إصدار SQL 2005 من bcp.

ومع ذلك ، قمت باختباره أيضًا مع إصدار SQL 2000 من bcp ، وهذا فشل مع

Error = [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near the keyword 'group'.

أعتقد أن ما ستحصل عليه

هل يمكنك ترقية النظام حيث تقوم بتشغيل bcp لاستخدام أدوات عميل SQL 2005؟

إذا كنت تعتقد أنك قمت بالترقية بالفعل ، تحقق من متغير بيئة PATH لتأكيد ذلك

C:\Program Files\Microsoft SQL Server\90\Tools\binn\

(معدلة للتثبيت الخاص بك) يظهر من قبل

C:\Program Files\Microsoft SQL Server\80\Tools\BINN

وإلا سيتم استخدام أدوات سطر الأوامر SQL 2000 في تفضيل SQL 2005

1
وأضاف

في MS SQL ، يمكنك استخدام Keywork SQL كاسم عمود إذا قمت بوضعه في عرض الأسعار.

Example: SELECT id, "group" FROM myTable

0
وأضاف