NAME
Doodle::Grammar::Mssql
ABSTRACT
Doodle Grammar For MSSQL
SYNOPSIS
use Doodle::Grammar::Mssql;
my $self = Doodle::Grammar::Mssql->new(%args);
DESCRIPTION
Doodle::Grammar::Mssql determines how Command classes should be interpreted to produce the correct DDL statements.
METHODS
This package implements the following methods.
create_column
create_column(Command $command) : Str
Returns the SQL statement for the create column command.
- create_column example
-
use Doodle; my $d = Doodle->new; my $t = $d->table('users'); my $c = $t->primary('id'); my $command = $c->create; $self->create_column($command); # alter table [users] add column [id] int identity(1,1) primary key
create_index
create_index(Command $command) : Str
Returns the SQL statement for the create index command.
- create_index example
-
use Doodle; my $d = Doodle->new; my $t = $d->table('users'); my $i = $t->index(columns => ['id']); my $command = $i->create; $self->create_index($command); # create index [indx_users_id] on [users] ([id])
create_relation
create_relation(Command $command) : Str
Returns the SQL statement for the create relation command.
- create_relation example
-
use Doodle; my $d = Doodle->new; my $t = $d->table('users'); my $r = $t->relation('profile_id', 'profiles', 'id'); my $command = $r->create; $self->create_relation($command); # alter table [users] add constraint fkey_users_profile_id_profiles_id # foreign key (profile_id) references profiles (id)
create_table
create_table(Command $command) : Str
Returns the SQL statement for the create table command.
- create_table example
-
use Doodle; my $d = Doodle->new; my $t = $d->table('users'); my $c = $t->column('data'); my $command = $t->create; $self->create_table($command); # create table [users] ([data] nvarchar(255))
delete_column
delete_column(Command $command) : Str
Returns the SQL statement for the delete column command.
- delete_column example
-
use Doodle; my $d = Doodle->new; my $t = $d->table('users'); my $c = $t->primary('id'); my $command = $c->delete; $self->delete_column($command); # alter table [users] drop column [id]
delete_index
delete_index(Command $command) : Str
Returns the SQL statement for the delete index command.
- delete_index example
-
use Doodle; my $d = Doodle->new; my $t = $d->table('users'); my $i = $t->index(columns => ['id']); my $command = $i->delete; $self->delete_index($command); # drop index [indx_users_id]
delete_relation
delete_relation(Command $command) : Str
Returns the SQL statement for the delete relation command.
- delete_relation example
-
use Doodle; my $d = Doodle->new; my $t = $d->table('users'); my $r = $t->relation('profile_id', 'profiles', 'id'); my $command = $r->delete; $self->delete_relation($command); # alter table [users] drop constraint [fkey_users_profile_id_profiles_id]
delete_table
delete_table(Command $command) : Str
Returns the SQL statement for the delete table command.
- delete_table example
-
use Doodle; my $d = Doodle->new; my $t = $d->table('users'); my $c = $t->column('data'); my $command = $t->delete; $self->delete_table($command); # drop table [users]
rename_table
rename_table(Command $command) : Str
Returns the SQL statement for the rename table command.
- rename_table example
-
use Doodle; my $d = Doodle->new; my $t = $d->table('users'); my $c = $t->column('data'); my $command = $t->rename('people'); $self->rename_table($command); # rename table [users] to [people]
type_binary
type_binary(Column $column) : Str
Returns the type expression for a binary column.
type_boolean
type_boolean(Column $column) : Str
Returns the type expression for a boolean column.
type_char
type_char(Column $column) : Str
Returns the type expression for a char column.
- type_char example
-
$self->type_char($column); # nchar(1) $self->type_char($column, size => 10); # nchar(10)
type_date
type_date(Column $column) : Str
Returns the type expression for a date column.
type_datetime
type_datetime(Column $column) : Str
Returns the type expression for a datetime column.
type_datetime_tz
type_datetime_tz(Column $column) : Str
Returns the type expression for a datetime_tz column.
type_decimal
type_decimal(Column $column) : Str
Returns the type expression for a decimal column.
type_double
type_double(Column $column) : Str
Returns the type expression for a double column.
type_enum
type_enum(Column $column) : Str
Returns the type expression for a enum column.
type_float
type_float(Column $column) : Str
Returns the type expression for a float column.
type_integer
type_integer(Column $column) : Str
Returns the type expression for a integer column.
type_integer_big
type_integer_big(Column $column) : Str
Returns the type expression for a integer_big column.
type_integer_big_unsigned
type_integer_big_unsigned(Column $column) : Str
Returns the type expression for a integer_big_unsigned column.
type_integer_medium
type_integer_medium(Column $column) : Str
Returns the type expression for a integer_medium column.
type_integer_medium_unsigned
type_integer_medium_unsigned(Column $column) : Str
Returns the type expression for a integer_medium_unsigned column.
type_integer_small
type_integer_small(Column $column) : Str
Returns the type expression for a integer_small column.
type_integer_small_unsigned
type_integer_small_unsigned(Column $column) : Str
Returns the type expression for a integer_small_unsigned column.
type_integer_tiny
type_integer_tiny(Column $column) : Str
Returns the type expression for a integer_tiny column.
type_integer_tiny_unsigned
type_integer_tiny_unsigned(Column $column) : Str
Returns the type expression for a integer_tiny_unsigned column.
type_integer_unsigned
type_integer_unsigned(Column $column) : Str
Returns the type expression for a integer_unsigned column.
type_json
type_json(Column $column) : Str
Returns the type expression for a json column.
type_string
type_string(Column $column) : Str
Returns the type expression for a string column.
type_text
type_text(Column $column) : Str
Returns the type expression for a text column.
type_text_long
type_text_long(Column $column) : Str
Returns the type expression for a text_long column.
type_text_medium
type_text_medium(Column $column) : Str
Returns the type expression for a text_medium column.
type_time
type_time(Column $column) : Str
Returns the type expression for a time column.
type_time_tz
type_time_tz(Column $column) : Str
Returns the type expression for a time_tz column.
type_timestamp
type_timestamp(Column $column) : Str
Returns the type expression for a timestamp column.
type_timestamp_tz
type_timestamp_tz(Column $column) :
Returns the type expression for a timestamp_tz column.
type_uuid
type_uuid(Column $column) : Str
Returns the type expression for a uuid column.
update_column
update_column(Command $command) : Command
Returns the SQL statement for the update column command.
- update_column example
-
use Doodle; my $d = Doodle->new; my $t = $d->table('users'); my $c = $t->primary('id'); my $command = $c->update; $self->update_column($command); # alter table [users] alter column [id] type integer $command = $c->update(set => 'not null'); $self->update_column($command); # alter table [users] alter column [id] set not null
wrap
wrap(Str $arg) : Str
Returns a wrapped SQL identifier.