class Mkxms::Mssql::Table

Constants

SQL_OBJECT_TYPE

Attributes

columns[R]
heap_storage[RW]
lob_storage[RW]
name[RW]
owner[RW]
schema[RW]

Public Class Methods

new(schema, name) click to toggle source
# File lib/mkxms/mssql/table_handler.rb, line 12
def initialize(schema, name)
  @schema = schema
  @name = name
  @columns = []
end

Public Instance Methods

to_sql() click to toggle source
# File lib/mkxms/mssql/table_handler.rb, line 21
def to_sql
  lines = ["CREATE TABLE #{schema}.#{name} ("]
  lines << columns.map{|c| "    " + c.to_sql}.join(",\n")
  lines << ")"
  
  lines << "ON #{heap_storage}" if heap_storage
  lines << "TEXTIMAGE_ON #{lob_storage}" if lob_storage
  
  lines << ";"
  lines << ""
  
  if owner
    lines << ["ALTER AUTHORIZATION ON OBJECT::#{schema}.#{name} TO #{owner};"]
    lines << ""
  end
  
  lines.concat extended_properties_sql
  
  columns.each do |col|
    lines.concat subitem_extended_properties_sql(col)
  end
  
  return lines.join("\n")
end