2008-10-14 5 views
1

J'ai un fichier de format où je veux que l'une des colonnes soit "groupe". Je suis auto-générer le fichier de format et un client veut télécharger un fichier avec "groupe" comme l'une des colonnes. Je pourrais le restreindre afin qu'ils ne puissent pas utiliser les mots-clés SQL, mais j'ai besoin d'une fonction pour déterminer si un nom de colonne est un mot-clé SQL, donc je voudrais aider l'utilisateur à nommer ses clients comme ils veulent. Je me demande si c'est possible. J'ai essayé d'utiliser des crochets, mais cela n'a pas semblé fonctionner. Mon fichier ressemble:Un fichier au format BCP version 8.0 peut-il avoir un nom de colonne qui est un mot-clé SQL?

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

Répondre

1

Je l'ai testé ceci plusieurs façons différentes sur le Service Pack 2 SQL 2005 (bases de données cibles dans les deux modes de compatibilité 80 et 90) et il fonctionne bien pour moi en utilisant la version SQL 2005 de bcp.

Cependant, j'ai aussi testé avec la version SQL 2000 de bcp et qui a échoué avec

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

que je suppose est ce que vous obtenez.

Etes-vous capable de mettre à niveau le système sur lequel vous exécutez bcp pour utiliser les outils client SQL 2005?

Si vous croyez que vous avez déjà mis à jour, vérifiez votre variable d'environnement PATH pour confirmer que

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

(ajusté pour l'installation) apparaît avant

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

sinon les outils de ligne de commande SQL 2000 sera utilisé de préférence au SQL 2005

0

Sur MS SQL, vous pouvez utiliser un SQL Keywork comme nom de colonne si vous le mettez entre guillemets. Par exemple: SELECT id, "group" FROM myTable

Questions connexes