diff --git a/src/main/java/com/alibaba/druid/sql/parser/SQLStatementParser.java b/src/main/java/com/alibaba/druid/sql/parser/SQLStatementParser.java index 7907eff5c1..0c6b3b88eb 100644 --- a/src/main/java/com/alibaba/druid/sql/parser/SQLStatementParser.java +++ b/src/main/java/com/alibaba/druid/sql/parser/SQLStatementParser.java @@ -1784,6 +1784,10 @@ public class SQLStatementParser extends SQLParser { SQLPrimaryKey primaryKey = this.exprParser.parsePrimaryKey(); SQLAlterTableAddConstraint item = new SQLAlterTableAddConstraint(primaryKey); stmt.addItem(item); + } else if (lexer.token == UNIQUE) { + SQLUnique unique = this.exprParser.parseUnique(); + SQLAlterTableAddConstraint item = new SQLAlterTableAddConstraint(unique); + stmt.addItem(item); } else if (lexer.token == Token.IDENTIFIER) { SQLAlterTableAddColumn item = parseAlterTableAddColumn(); stmt.addItem(item); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/sqlserver/SqlServerResourceTest.java b/src/test/java/com/alibaba/druid/bvt/sql/sqlserver/SqlServerResourceTest.java index f267acb313..87fea75ee0 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/sqlserver/SqlServerResourceTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/sqlserver/SqlServerResourceTest.java @@ -38,6 +38,10 @@ public class SqlServerResourceTest extends TestCase { exec_test("bvt/parser/sqlserver-0.txt"); } + public void test_1() throws Exception { + exec_test("bvt/parser/sqlserver-1.txt"); + } + public void exec_test(String resource) throws Exception { // System.out.println(resource); InputStream is = null; diff --git a/src/test/resources/bvt/parser/sqlserver-1.txt b/src/test/resources/bvt/parser/sqlserver-1.txt new file mode 100644 index 0000000000..a46a08ea28 --- /dev/null +++ b/src/test/resources/bvt/parser/sqlserver-1.txt @@ -0,0 +1,4 @@ +ALTER TABLE [dbo].[sys_config] ADD UNIQUE ([param_key] ASC) +--------------------------- +ALTER TABLE [dbo].[sys_config] + ADD UNIQUE ([param_key] ASC)