Um arquivo de formato BCP versão 8.0 tem um nome de coluna que é uma palavra-chave SQL?

Eu tenho um arquivo de formato onde eu quero uma das colunas para ser "grupo". Estou gerando automaticamente o arquivo de formato e um cliente quer fazer upload de um arquivo com "grupo" como uma das colunas. Eu poderia restringi-lo para que eles não pudessem usar palavras-chave SQL, mas eu preciso de uma função para determinar se o nome de uma coluna é uma palavra-chave SQL, então gostaria de dar suporte ao usuário para poder nomear seus clientes como quiserem. Eu estou querendo saber se isso é possível. Eu tentei usar colchetes, mas isso não pareceu funcionar. Meu arquivo parece:

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

2 Respostas

Eu testei isso de várias maneiras diferentes no SQL 2005 SP2 (bancos de dados de destino em ambos os modos de compatibilidade 80 e 90) e funciona bem para mim usando a versão SQL 2005 do bcp.

No entanto, eu também testei com a versão SQL 2000 do bcp, e que falhou com

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

que eu acho que é o que você está recebendo.

Você é capaz de atualizar o sistema onde você está executando o bcp para usar as ferramentas do cliente SQL 2005?

Se você acredita que já atualizou, verifique sua variável de ambiente PATH para confirmar

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

(ajustado para a sua instalação) aparece antes

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

caso contrário, as ferramentas de linha de comando do SQL 2000 serão usadas de preferência para o SQL 2005

1
adicionado

No MS SQL, você pode usar um SQL Keywork como um nome de coluna, se você colocá-lo entre aspas.

Example: SELECT id, "group" FROM myTable

0
adicionado