¿Puede un archivo de formato BCP versión 8.0 tener un nombre de columna que sea una palabra clave SQL?

Tengo un archivo de formato donde quiero que una de las columnas sea "grupo". Estoy auto-generando el archivo de formato y un cliente quiere cargar un archivo con "grupo" como una de las columnas. Podría restringirlo para que no puedan usar palabras clave SQL, pero luego necesito una función para determinar si el nombre de una columna es una palabra clave SQL, por lo que me gustaría ayudar al usuario a poder nombrar a sus clientes como lo deseen. Me pregunto si esto es posible. Intenté usar corchetes, pero eso no pareció funcionar. Mi archivo se ve así:

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

2 Respuestas

Probé esto de varias maneras diferentes en SQL 2005 SP2 (bases de datos de destino en ambos modos de compatibilidad 80 y 90) y funciona bien para mí utilizando la versión SQL 2005 de bcp.

Sin embargo, también lo probé con la versión SQL 2000 de bcp, y eso falló con

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

que supongo que es lo que estás consiguiendo

¿Puede actualizar el sistema en el que ejecuta bcp para usar las herramientas de cliente SQL 2005?

Si cree que ya se ha actualizado, verifique su variable de entorno PATH para confirmar que

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

(ajustado para su instalación) aparece antes

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

de lo contrario, las herramientas de línea de comandos de SQL 2000 se usarán con preferencia a SQL 2005

1
agregado

En MS SQL, puede usar una clave SQL como nombre de columna si la cita.

Example: SELECT id, "group" FROM myTable

0
agregado