public class MSSQLDatabase extends AbstractJdbcDatabase
Modifier and Type | Class and Description |
---|---|
static class |
MSSQLDatabase.MSSQL_SERVER_VERSIONS |
Modifier and Type | Field and Description |
---|---|
protected static int |
MSSQL_DEFAULT_TCP_PORT |
static String |
PRODUCT_NAME |
protected Set<String> |
systemTablesAndViews |
caseSensitive, currentDateTimeFunction, dateFunctions, defaultAutoIncrementBy, defaultAutoIncrementStartWith, defaultCatalogName, defaultSchemaName, quotingStrategy, sequenceCurrentValueFunction, sequenceNextValueFunction, unmodifiableDataTypes, unquotedObjectsAreUppercased
COMPARATOR, PRIORITY_DATABASE, PRIORITY_DEFAULT
Constructor and Description |
---|
MSSQLDatabase() |
Modifier and Type | Method and Description |
---|---|
String |
escapeDataTypeName(String dataTypeName) |
String |
escapeObjectName(String objectName,
Class<? extends DatabaseObject> objectType) |
String |
escapeObjectName(String catalogName,
String schemaName,
String objectName,
Class<? extends DatabaseObject> objectType) |
String |
escapeTableName(String catalogName,
String schemaName,
String tableName) |
protected boolean |
generateAutoIncrementBy(BigInteger incrementBy) |
protected boolean |
generateAutoIncrementStartWith(BigInteger startWith) |
String |
generateDefaultConstraintName(String tableName,
String columnName) |
protected String |
getAutoIncrementByClause() |
protected String |
getAutoIncrementClause() |
protected String |
getAutoIncrementStartWithClause() |
String |
getConcatSql(String... values)
Returns SQL to concat the passed values.
|
protected SqlStatement |
getConnectionSchemaNameCallStatement()
Used to obtain the connection schema name through a statement
Override this method to change the statement.
|
int |
getDataTypeMaxParameters(String dataTypeName) |
String |
getDateLiteral(String isoDate)
Return a date literal with the same value as a string formatted using ISO 8601.
|
String |
getDefaultCatalogName() |
protected String |
getDefaultDatabaseProductName() |
String |
getDefaultDriver(String url)
If this database understands the given url, return the default driver class name.
|
Integer |
getDefaultPort() |
Integer |
getDefaultScaleForNativeDataType(String nativeDataType)
Returns the default precision for a given native data type, e.g.
|
String |
getEngineEdition()
Determines the capabilities ("Edition") of the SQL Server database.
|
String |
getJdbcSchemaName(CatalogAndSchema schema) |
int |
getPriority() |
protected String |
getQuotingEndCharacter() |
protected String |
getQuotingEndReplacement() |
protected String |
getQuotingStartCharacter() |
String |
getShortName()
Returns an all-lower-case short name of the product.
|
protected Set<String> |
getSystemTables()
Returns system (undroppable) views.
|
Set<String> |
getSystemViews()
Returns system (undroppable) views.
|
String |
getViewDefinition(CatalogAndSchema schema,
String viewName) |
boolean |
isAzureDb()
Returns true if the connected MS SQL instance is a Microsoft Cloud ("Azure")-hosted instance of MSSQL.
|
boolean |
isCaseSensitive() |
boolean |
isCorrectDatabaseImplementation(DatabaseConnection conn)
Is this AbstractDatabase subclass the correct one to use for the given connection.
|
boolean |
isSystemObject(DatabaseObject example) |
boolean |
sendsStringParametersAsUnicode()
Determines if the SQL Server instance assigns Unicode data types (e.g.
|
void |
setDefaultSchemaName(String schemaName) |
boolean |
supportsCatalogInObjectName(Class<? extends DatabaseObject> type) |
boolean |
supportsDropTableCascadeConstraints() |
boolean |
supportsInitiallyDeferrableColumns()
Returns whether this database support initially deferrable columns.
|
boolean |
supportsRestrictForeignKeys() |
boolean |
supportsSequences()
Does the database type support sequence.
|
boolean |
supportsTablespaces() |
String |
unescapeDataTypeName(String dataTypeName) |
String |
unescapeDataTypeString(String dataTypeString) |
addReservedWords, canCreateChangeLogTable, close, commit, correctObjectName, correctSchema, correctSchema, createsIndexesForForeignKeys, dataTypeIsNotModifiable, disableForeignKeyChecks, doesTagExist, dropDatabaseObjects, enableForeignKeyChecks, equals, escapeColumnName, escapeColumnName, escapeColumnNameList, escapeConstraintName, escapeIndexName, escapeSequenceName, escapeStringForDatabase, escapeViewName, execute, executeRollbackStatements, executeRollbackStatements, executeStatements, filterRollbackVisitors, generateDatabaseFunctionValue, generatePrimaryKeyName, get, getAutoCommitMode, getAutoIncrementClause, getAutoIncrementClause, getAutoIncrementClosing, getAutoIncrementOpening, getConnection, getConnectionCatalogName, getConnectionSchemaName, getContainingObjects, getCurrentDateTimeFunction, getDatabaseChangeLogLockTableName, getDatabaseChangeLogTableName, getDatabaseMajorVersion, getDatabaseMinorVersion, getDatabaseProductName, getDatabaseProductVersion, getDateFunctions, getDateLiteral, getDateLiteral, getDateTimeLiteral, getDefaultFractionalDigitsForTimestamp, getDefaultSchema, getDefaultSchemaName, getFetchSize, getJdbcCatalogName, getJdbcCatalogName, getJdbcSchemaName, getLineComment, getLiquibaseCatalogName, getLiquibaseSchemaName, getLiquibaseTablespaceName, getMaxFractionalDigitsForTimestamp, getName, getObjectQuotingStrategy, getOutputDefaultCatalog, getOutputDefaultSchema, getRanChangeSet, getRanChangeSetList, getRanDate, getRunStatus, getSchemaAndCatalogCase, getSchemaFromJdbcInfo, getSystemSchema, getTimeLiteral, hashCode, isAutoCommit, isDateOnly, isDateTime, isDefaultCatalog, isDefaultSchema, isFunction, isLiquibaseObject, isReservedWord, isSafeToRunUpdate, isSystemView, isTimeOnly, isTimestamp, jdbcCallsCatalogsSchemas, markChangeSetExecStatus, mustQuoteObjectName, parseDate, quoteObject, removeRanStatus, requiresExplicitNullForColumns, requiresPassword, requiresUsername, resetInternalState, rollback, saveRollbackStatement, saveStatements, set, setAutoCommit, setCanCacheLiquibaseTableInfo, setCaseSensitive, setConnection, setCurrentDateTimeFunction, setDatabaseChangeLogLockTableName, setDatabaseChangeLogTableName, setDefaultCatalogName, setLiquibaseCatalogName, setLiquibaseSchemaName, setLiquibaseTablespaceName, setObjectQuotingStrategy, setOutputDefaultCatalog, setOutputDefaultSchema, startsWithNumeric, supportsAutoIncrement, supportsBatchUpdates, supportsCatalogs, supportsDDLInTransaction, supportsForeignKeyDisable, supportsNotNullConstraintNames, supportsPrimaryKeyNames, supportsSchemas, tag, toString, validate
public static final String PRODUCT_NAME
protected static final int MSSQL_DEFAULT_TCP_PORT
public Integer getDefaultScaleForNativeDataType(String nativeDataType)
Database
getDefaultScaleForNativeDataType
in interface Database
getDefaultScaleForNativeDataType
in class AbstractJdbcDatabase
nativeDataType
- the name of the native data type (case-insensitive).public void setDefaultSchemaName(String schemaName)
setDefaultSchemaName
in interface Database
setDefaultSchemaName
in class AbstractJdbcDatabase
public String getShortName()
Database
public int getPriority()
protected String getDefaultDatabaseProductName()
getDefaultDatabaseProductName
in class AbstractJdbcDatabase
public Integer getDefaultPort()
public Set<String> getSystemViews()
AbstractJdbcDatabase
getSystemViews
in class AbstractJdbcDatabase
protected Set<String> getSystemTables()
AbstractJdbcDatabase
getSystemTables
in class AbstractJdbcDatabase
public boolean supportsInitiallyDeferrableColumns()
Database
public boolean supportsSequences()
AbstractJdbcDatabase
supportsSequences
in interface Database
supportsSequences
in class AbstractJdbcDatabase
public boolean isCorrectDatabaseImplementation(DatabaseConnection conn) throws DatabaseException
Database
DatabaseException
public String getDefaultDriver(String url)
Database
protected String getAutoIncrementClause()
getAutoIncrementClause
in class AbstractJdbcDatabase
protected boolean generateAutoIncrementStartWith(BigInteger startWith)
generateAutoIncrementStartWith
in class AbstractJdbcDatabase
protected boolean generateAutoIncrementBy(BigInteger incrementBy)
generateAutoIncrementBy
in class AbstractJdbcDatabase
protected String getAutoIncrementStartWithClause()
getAutoIncrementStartWithClause
in class AbstractJdbcDatabase
protected String getAutoIncrementByClause()
getAutoIncrementByClause
in class AbstractJdbcDatabase
public String getDefaultCatalogName()
getDefaultCatalogName
in interface Database
getDefaultCatalogName
in class AbstractJdbcDatabase
protected SqlStatement getConnectionSchemaNameCallStatement()
AbstractJdbcDatabase
getConnectionSchemaNameCallStatement
in class AbstractJdbcDatabase
AbstractJdbcDatabase.getConnectionSchemaName()
public String getConcatSql(String... values)
Database
getConcatSql
in interface Database
getConcatSql
in class AbstractJdbcDatabase
public String escapeTableName(String catalogName, String schemaName, String tableName)
escapeTableName
in interface Database
escapeTableName
in class AbstractJdbcDatabase
public boolean supportsTablespaces()
public boolean isSystemObject(DatabaseObject example)
isSystemObject
in interface Database
isSystemObject
in class AbstractJdbcDatabase
public String generateDefaultConstraintName(String tableName, String columnName)
public String escapeObjectName(String objectName, Class<? extends DatabaseObject> objectType)
escapeObjectName
in interface Database
escapeObjectName
in class AbstractJdbcDatabase
public String getDateLiteral(String isoDate)
AbstractJdbcDatabase
getDateLiteral
in interface Database
getDateLiteral
in class AbstractJdbcDatabase
public boolean supportsRestrictForeignKeys()
supportsRestrictForeignKeys
in interface Database
supportsRestrictForeignKeys
in class AbstractJdbcDatabase
public boolean supportsDropTableCascadeConstraints()
supportsDropTableCascadeConstraints
in interface Database
supportsDropTableCascadeConstraints
in class AbstractJdbcDatabase
public boolean supportsCatalogInObjectName(Class<? extends DatabaseObject> type)
supportsCatalogInObjectName
in interface Database
supportsCatalogInObjectName
in class AbstractJdbcDatabase
public String getViewDefinition(CatalogAndSchema schema, String viewName) throws DatabaseException
getViewDefinition
in interface Database
getViewDefinition
in class AbstractJdbcDatabase
DatabaseException
public String escapeObjectName(String catalogName, String schemaName, String objectName, Class<? extends DatabaseObject> objectType)
escapeObjectName
in interface Database
escapeObjectName
in class AbstractJdbcDatabase
public String getJdbcSchemaName(CatalogAndSchema schema)
getJdbcSchemaName
in class AbstractJdbcDatabase
public boolean isCaseSensitive()
isCaseSensitive
in interface Database
isCaseSensitive
in class AbstractJdbcDatabase
public int getDataTypeMaxParameters(String dataTypeName)
getDataTypeMaxParameters
in interface Database
getDataTypeMaxParameters
in class AbstractJdbcDatabase
public String escapeDataTypeName(String dataTypeName)
escapeDataTypeName
in interface Database
escapeDataTypeName
in class AbstractJdbcDatabase
public String unescapeDataTypeName(String dataTypeName)
unescapeDataTypeName
in interface Database
unescapeDataTypeName
in class AbstractJdbcDatabase
public String unescapeDataTypeString(String dataTypeString)
unescapeDataTypeString
in interface Database
unescapeDataTypeString
in class AbstractJdbcDatabase
public boolean sendsStringParametersAsUnicode()
public boolean isAzureDb()
public String getEngineEdition()
protected String getQuotingStartCharacter()
getQuotingStartCharacter
in class AbstractJdbcDatabase
protected String getQuotingEndCharacter()
getQuotingEndCharacter
in class AbstractJdbcDatabase
protected String getQuotingEndReplacement()
getQuotingEndReplacement
in class AbstractJdbcDatabase
Copyright © 2021 Liquibase.org. All rights reserved.