Module: RailsSqlViews::ConnectionAdapters::SQLServerAdapter

Defined in:
lib/rails_sql_views/connection_adapters/sqlserver_adapter.rb

Instance Method Summary collapse

Instance Method Details

#base_tables(name = nil) ⇒ Object Also known as: nonview_tables

Get all of the non-view tables from the currently connected schema



14
15
16
17
# File 'lib/rails_sql_views/connection_adapters/sqlserver_adapter.rb', line 14

def base_tables(name = nil)
  # this is untested
  select_values("SELECT table_name FROM information_schema.tables WHERE TABLE_TYPE <> 'VIEWS'", name)
end

#supports_drop_table_cascade?Boolean

Returns:

  • (Boolean)


9
10
11
# File 'lib/rails_sql_views/connection_adapters/sqlserver_adapter.rb', line 9

def supports_drop_table_cascade?
  return false
end

#supports_views?Boolean

Returns true as this adapter supports views.

Returns:

  • (Boolean)


5
6
7
# File 'lib/rails_sql_views/connection_adapters/sqlserver_adapter.rb', line 5

def supports_views?
  true
end

#view_select_statement(view, name = nil) ⇒ Object

Get the view select statement for the specified view.



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/rails_sql_views/connection_adapters/sqlserver_adapter.rb', line 26

def view_select_statement(view, name=nil)
  q =<<-ENDSQL
    SELECT
        SM.definition
    FROM
        sys.objects O
        JOIN
        sys.sql_modules SM ON o.object_id = SM.object_id
    WHERE
        o.type = 'V' AND o.name = '#{view}'
  ENDSQL

  view_def = select_value(q, name)

  if view_def
    return convert_statement(view_def)
  else
    raise "No view called #{view} found"
  end
end

#views(name = nil) ⇒ Object

Returns all the view names from the currently connected schema.



21
22
23
# File 'lib/rails_sql_views/connection_adapters/sqlserver_adapter.rb', line 21

def views(name = nil)
  select_values("SELECT table_name FROM information_schema.views", name)
end