我有一个格式文件,我希望其中一列是“group”。我正在自动生成格式文件,客户端想要上传一个带有“group”作为列之一的文件。我可以限制它,因此他们不能使用SQL关键字,但是我需要一个函数来确定列名是否是SQL关键字,所以我想支持用户能够为他们想要的客户端命名。我想知道这是否可行。我尝试使用括号,但似乎没有用。我的文件看起来像:
8.0 1 1 SQLCHAR 0 0 "\r\n" 1 [group] SQL_Latin1_General_CP1_CI_AS
答案 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