我有一个格式文件,我希望其中一列是“组”。我正在自动生成格式文件,并且客户想要上传一个以“组”作为列之一的文件。我可以限制它,这样他们就不能使用 SQL 关键字,但是我需要一个函数来确定列名是否是 SQL 关键字,所以我想支持用户能够随意命名他们的客户。我想知道这是否可能。我尝试使用括号,但这似乎不起作用。我的文件看起来像:
8.0 1 1 SQLCHAR 0 0 "\r\n" 1 [组] SQL_Latin1_General_CP1_CI_AS
我有一个格式文件,我希望其中一列是“组”。我正在自动生成格式文件,并且客户想要上传一个以“组”作为列之一的文件。我可以限制它,这样他们就不能使用 SQL 关键字,但是我需要一个函数来确定列名是否是 SQL 关键字,所以我想支持用户能够随意命名他们的客户。我想知道这是否可能。我尝试使用括号,但这似乎不起作用。我的文件看起来像:
8.0 1 1 SQLCHAR 0 0 "\r\n" 1 [组] SQL_Latin1_General_CP1_CI_AS
我在 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 命令行工具将优先于 SQL 2005 使用
在 MS SQL 上,如果将 SQL Keywork 放在引号中,则可以将其用作列名。
例子:SELECT id, "group" FROM myTable