Может ли файл формата BCP версии 8.0 иметь имя столбца, являющееся ключевым словом SQL? - PullRequest
1 голос
/ 14 октября 2008

У меня есть файл формата, в котором я хочу, чтобы один из столбцов был «группой». Я автоматически генерирую файл формата, и клиент хочет загрузить файл с «группой» в качестве одного из столбцов. Я мог бы ограничить его, чтобы они не могли использовать ключевые слова SQL, но тогда мне нужна функция, чтобы определить, является ли имя столбца ключевым словом SQL, поэтому я бы хотел, чтобы пользователь мог называть своих клиентов так, как они хотят. Мне интересно, возможно ли это? Я пытался использовать скобки, но это не сработало. Мой файл выглядит так:

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

Ответы [ 2 ]

1 голос
/ 15 октября 2008

Я проверил это несколькими различными способами на SQL 2005 с пакетом обновления 2 (целевые базы данных в обоих режимах совместимости 80 и 90), и он работает нормально для меня, используя версию SQL 2005 для bcp.

Однако я также протестировал его с версией bcp для SQL 2000, и это не удалось с

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

0 голосов
/ 17 октября 2008

В MS SQL вы можете использовать SQL Keywork в качестве имени столбца, если ставите его в кавычки.

Пример: SELECT id, "group" FROM myTable

...