Module | Sequel::MSSQL::DatabaseMethods |
In: |
lib/sequel/adapters/shared/mssql.rb
|
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 | = | 'ROLLBACK TRANSACTION autopoint_%d'.freeze |
SQL_SAVEPOINT | = | 'SAVE TRANSACTION autopoint_%d'.freeze |
TEMPORARY | = | "#".freeze |
The version of the MSSQL server, as an integer (e.g. 10001600 for SQL Server 2008 Express).
# File lib/sequel/adapters/shared/mssql.rb, line 22 22: def server_version(server=nil) 23: return @server_version if @server_version 24: @server_version = synchronize(server) do |conn| 25: (conn.server_version rescue nil) if conn.respond_to?(:server_version) 26: end 27: unless @server_version 28: m = SERVER_VERSION_RE.match(fetch(SERVER_VERSION_SQL).single_value.to_s) 29: @server_version = (m[1].to_i * 1000000) + (m[2].to_i * 10000) + m[3].to_i 30: end 31: @server_version 32: end
Microsoft SQL Server supports using the INFORMATION_SCHEMA to get information on tables.
# File lib/sequel/adapters/shared/mssql.rb, line 41 41: def tables(opts={}) 42: m = output_identifier_meth 43: metadata_dataset.from(:information_schema__tables___t). 44: select(:table_name). 45: filter(:table_type=>'BASE TABLE', :table_schema=>(opts[:schema]||default_schema||'dbo').to_s). 46: map{|x| m.call(x[:table_name])} 47: end