fix SQL SERVER ALTER TABLE ADD COLUMN BUG.

This commit is contained in:
zyc
2023-02-03 15:23:07 +08:00
parent f148d16d4a
commit e12d64c07b
2 changed files with 36 additions and 0 deletions
@@ -2494,6 +2494,9 @@ public class SQLStatementParser extends SQLParser {
SQLConstraint constraint = this.exprParser.parseConstaint();
SQLAlterTableAddConstraint item = new SQLAlterTableAddConstraint(constraint);
stmt.addItem(item);
} else if (lexer.token == LITERAL_ALIAS && dbType == DbType.sqlserver) {
SQLAlterTableAddColumn item = parseAlterTableAddColumn();
stmt.addItem(item);
} else {
throw new ParserException("TODO " + lexer.info());
}
@@ -0,0 +1,33 @@
package com.alibaba.druid.sql.parser;
import com.alibaba.druid.sql.ast.statement.SQLAlterTableStatement;
import com.alibaba.druid.sql.dialect.sqlserver.parser.SQLServerStatementParser;
import junit.framework.TestCase;
import org.junit.Assert;
/**
* Created by zyc@byshell.org on 2016/8/16.
*/
public class SqlserverAlterTest extends TestCase {
public void testAlter1() {
String sql = "alter table alert_config_detail\n" + " add age14 int";
SQLStatementParser parser = new SQLServerStatementParser(sql);
SQLAlterTableStatement stmt = (SQLAlterTableStatement) parser.parseStatement(); //
try {
stmt.toString();
} catch (ClassCastException e) {
Assert.fail(e.getMessage());
}
}
public void testAlter2() {
String sql = "ALTER TABLE \"console\".\"dbo\".\"alert_config_detail\"\n" + "\tADD \"age14\" int";
SQLStatementParser parser = new SQLServerStatementParser(sql);
SQLAlterTableStatement stmt = (SQLAlterTableStatement) parser.parseStatement(); //
try {
stmt.toString();
} catch (ClassCastException e) {
Assert.fail(e.getMessage());
}
}
}