BCP 8.0版格式文件的列名是否可以是SQL关键字?

时间:2008-10-14 16:12:40

标签: sql-server sql-server-2005 bcp

我有一个格式文件,我希望其中一列是“group”。我正在自动生成格式文件,客户端想要上传一个带有“group”作为列之一的文件。我可以限制它,因此他们不能使用SQL关键字,但是我需要一个函数来确定列名是否是SQL关键字,所以我想支持用户能够为他们想要的客户端命名。我想知道这是否可行。我尝试使用括号,但似乎没有用。我的文件看起来像:

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

2 个答案:

答案 0 :(得分:1)

我在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命令行工具

答案 1 :(得分:0)

在MS SQL上,如果将其放在引号中,可以使用SQL关键字作为列名。示例:SELECT id, "group" FROM myTable