Module | Sequel::MSSQL::DatabaseMethods
In: | lib/sequel/adapters/shared/mssql.rb

### Methods

database_type global_index_namespace? indexes server_version supports_savepoints? supports_transaction_isolation_levels? supports_transactional_ddl? tables views

### Constants

AUTO_INCREMENT | = | 'IDENTITY(1,1)'.freeze
SERVER_VERSION_RE | = | /^(\d+)\.(\d+)\.(\d+)/.freeze
SERVER_VERSION_SQL | = | "SELECT CAST(SERVERPROPERTY('ProductVersion') AS varchar)".freeze
SQL_BEGIN | = | "BEGIN TRANSACTION".freeze
SQL_COMMIT | = | "COMMIT TRANSACTION".freeze
SQL_ROLLBACK | = | "IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION".freeze
SQL_ROLLBACK_TO_SAVEPOINT | = | 'IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION autopoint_%d'.freeze
SQL_SAVEPOINT | = | 'SAVE TRANSACTION autopoint_%d'.freeze
DECIMAL_TYPE_RE | = | /number|numeric|decimal/io |  | The types to check for 0 scale to transform :decimal types to :integer.

### Attributes

mssql_unicode_strings | [RW] | Whether to use N’’ to quote strings, which allows unicode characters inside the strings. True by default for compatibility, can be set to false for a possible performance increase. This sets the default for all datasets created from this Database object.

### Public Instance methods

database_type()

Microsoft SQL Server uses the :mssql type.

[Source]

        # File lib/sequel/adapters/shared/mssql.rb, line 27
    27:       def database_type
    28:         :mssql
    29:       end

global_index_namespace?()

Microsoft SQL Server namespaces indexes per table.

[Source]

        # File lib/sequel/adapters/shared/mssql.rb, line 32
    32:       def global_index_namespace?
    33:         false
    34:       end

indexes(table, opts={})

Use the system tables to get index information

[Source]

        # File lib/sequel/adapters/shared/mssql.rb, line 37
    37:       def indexes(table, opts={})
    38:         m = output_identifier_meth
    39:         im = input_identifier_meth
    40:         indexes = {}
    41:         metadata_dataset.from(:sys__tables___t).
    42:          join(:sys__indexes___i, :object_id=>:object_id).
    43:          join(:sys__index_columns___ic, :object_id=>:object_id, :index_id=>:index_id).
    44:          join(:sys__columns___c, :object_id=>:object_id, :column_id=>:column_id).
    45:          select(:i__name, :i__is_unique, :c__name___column).
    46:          where{{t__name=>im.call(table)}}.
    47:          where(:i__is_primary_key=>0, :i__is_disabled=>0).
    48:          order(:i__name, :ic__index_column_id).
    49:          each do |r|
    50:           index = indexes[m.call(r[:name])] ||= {:columns=>[], :unique=>(r[:is_unique] && r[:is_unique]!=0)}
    51:           index[:columns] << m.call(r[:column])
    52:         end
    53:         indexes
    54:       end

server_version(server=nil)

The version of the MSSQL server, as an integer (e.g. 10001600 for SQL Server 2008 Express).

[Source]

        # File lib/sequel/adapters/shared/mssql.rb, line 58
    58:       def server_version(server=nil)
    59:         return @server_version if @server_version
    60:         @server_version = synchronize(server) do |conn|
    61:           (conn.server_version rescue nil) if conn.respond_to?(:server_version)
    62:         end
    63:         unless @server_version
    64:           m = SERVER_VERSION_RE.match(fetch(SERVER_VERSION_SQL).single_value.to_s)
    65:           @server_version = (m[1].to_i * 1000000) + (m[2].to_i * 10000) + m[3].to_i
    66:         end
    67:         @server_version
    68:       end

supports_savepoints?()

MSSQL supports savepoints, though it doesn‘t support committing/releasing them savepoint

[Source]

        # File lib/sequel/adapters/shared/mssql.rb, line 71
    71:       def supports_savepoints?
    72:         true
    73:       end

supports_transaction_isolation_levels?()

MSSQL supports transaction isolation levels

[Source]

        # File lib/sequel/adapters/shared/mssql.rb, line 76
    76:       def supports_transaction_isolation_levels?
    77:         true
    78:       end

supports_transactional_ddl?()

MSSQL supports transaction DDL statements.

[Source]

        # File lib/sequel/adapters/shared/mssql.rb, line 81
    81:       def supports_transactional_ddl?
    82:         true
    83:       end

tables(opts={})

Microsoft SQL Server supports using the INFORMATION_SCHEMA to get information on tables.

[Source]

        # File lib/sequel/adapters/shared/mssql.rb, line 87
    87:       def tables(opts={})
    88:         information_schema_tables('BASE TABLE', opts)
    89:       end

views(opts={})

Microsoft SQL Server supports using the INFORMATION_SCHEMA to get information on views.

[Source]

        # File lib/sequel/adapters/shared/mssql.rb, line 93
    93:       def views(opts={})
    94:         information_schema_tables('VIEW', opts)
    95:       end

[Validate]