SqlServer异常遇到“VARCHAR”

时间:2013-04-04 06:02:00

标签: java sql sql-server sqlexception

我收到此错误,不允许我创建表。它表示存在语法错误。

代码:

@Override
public void create() throws SQLException {
    String sqlString = String
            .format("create table %s(%s VARCHAR(20), %s VARCHAR(20), %s VARCHAR(50), %s VARCHAR(20), %s VARCHAR(5), %s VARCHAR(10), %s VARCHAR(20), %s VARCHAR(20), primary key (%s) )",
                    _tableName, ID, DESCRIPTION, STREET, CITY, PROVINCE, POSTALCODE, STOREPHONE, AUTOSERVICEPHONE, ID);
    super.create(sqlString);
}

异常

Exception in thread "main" java.sql.SQLSyntaxErrorException: Syntax error: Encountered "VARCHAR" at line 1, column 133.
...

2 个答案:

答案 0 :(得分:2)

一个有根据的猜测,但如果你的变量几乎肯定是空白的,或者包含一个空白,那就是一个。

通常情况下,我会将此作为评论,但这是我能想到的唯一可能原因。

打印出确定的SQL字符串。

答案 1 :(得分:0)

尝试转义列名,以防某些列名是SQL中的保留字。


@Override
public void create() throws SQLException {
    String sqlString = String
            .format("create table [%s] ([%s] VARCHAR(20), [%s] VARCHAR(20)......