2013-04-04 90 views
0

我得到这个错误,不允许我创建表。它说有一个语法错误。遇到SqlServer异常“VARCHAR”

代码:

@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. 
... 
+0

ID,描述等常数字段? – 2013-04-04 06:06:11

+0

@ChetterHummin是的,他们是 – user2122151 2013-04-04 06:12:19

回答

2

一个受过教育的猜测,但如果一个变量,你几乎可以肯定是空白的,或者包含空白。

通常我会对此做出评论,但这是我能想到的唯一可能的原因。

打印出SQL字符串以确保。

0

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


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