/*
 * Hibernate, Relational Persistence for Idiomatic Java
 *
 * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
 * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
 */
package org.hibernate.dialect;

import java.util.List;

import org.hibernate.dialect.pagination.LimitHandler;
import org.hibernate.dialect.pagination.SQLServer2012LimitHandler;

Microsoft SQL Server 2012 Dialect
Author:Brett Meyer
/** * Microsoft SQL Server 2012 Dialect * * @author Brett Meyer */
public class SQLServer2012Dialect extends SQLServer2008Dialect { @Override public boolean supportsSequences() { return true; } @Override public boolean supportsPooledSequences() { return true; } @Override public String getCreateSequenceString(String sequenceName) { return "create sequence " + sequenceName; } @Override public String getDropSequenceString(String sequenceName) { return "drop sequence " + sequenceName; } @Override public String getSelectSequenceNextValString(String sequenceName) { return "next value for " + sequenceName; } @Override public String getSequenceNextValString(String sequenceName) { return "select " + getSelectSequenceNextValString( sequenceName ); } @Override public String getQuerySequencesString() { return "select name from sys.sequences"; } @Override public String getQueryHintString(String sql, String hints) { final StringBuilder buffer = new StringBuilder( sql.length() + hints.length() + 12 ); final int pos = sql.indexOf( ";" ); if ( pos > -1 ) { buffer.append( sql.substring( 0, pos ) ); } else { buffer.append( sql ); } buffer.append( " OPTION (" ).append( hints ).append( ")" ); if ( pos > -1 ) { buffer.append( ";" ); } sql = buffer.toString(); return sql; } @Override public boolean supportsLimitOffset() { return true; } @Override protected LimitHandler getDefaultLimitHandler() { return new SQLServer2012LimitHandler(); } }