@Override
    public String getTableName() {
        StringBuilder sb = new StringBuilder();
        SQLServerOutputVisitor visitor = new SQLServerOutputVisitor(sb) {
            @Override
            public boolean visit(SQLExprTableSource x) {
                printTableSourceExpr(x.getExpr());
                return false;
            }

            @Override
            public boolean visit(SQLJoinTableSource x) {
                throw new NotSupportYetException("not support the syntax of update with join table");
            }
        };

        SQLTableSource tableSource = ast.getTableSource();
        if (tableSource instanceof SQLExprTableSource) {
            visitor.visit((SQLExprTableSource) tableSource);
        } else if (tableSource instanceof SQLJoinTableSource) {
            visitor.visit((SQLJoinTableSource) tableSource);
        } else {
            throw new NotSupportYetException("not support the syntax of update with unknow");
        }
        return sb.toString();
    }
@Test
    public void testGetTableName() {
        String sql = "update t set a = ?, b = ?, c = ?";
        SQLStatement sqlStatement = getSQLStatement(sql);

        SqlServerUpdateRecognizer recognizer = new SqlServerUpdateRecognizer(sql, sqlStatement);
        Assertions.assertEquals("t", recognizer.getTableName());

        //test for alias
        sql = "update t t1 set a = ?";
        sqlStatement = getSQLStatement(sql);
        recognizer = new SqlServerUpdateRecognizer(sql, sqlStatement);
        Assertions.assertEquals("t", recognizer.getTableName());
    }