1

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

8.0
1
1 SQLCHAR 0 0 "\r\n" 1 [组] SQL_Latin1_General_CP1_CI_AS
4

2 回答 2

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 命令行工具将优先于 SQL 2005 使用

于 2008-10-15T07:15:48.493 回答
0

在 MS SQL 上,如果将 SQL Keywork 放在引号中,则可以将其用作列名。

例子:SELECT id, "group" FROM myTable

于 2008-10-17T00:12:40.297 回答