class SqlServerGrammar extends Grammar

Properties

protected string $tablePrefix

The grammar table prefix.

from  Grammar
protected bool $transactions

If this Grammar supports schema changes wrapped in a transaction.

from  Grammar
protected array $modifiers

The possible column modifiers.

protected array $serials

The columns available as serials.

Methods

array
wrapArray(array $values)

Wrap an array of values.

from  Grammar
string
wrapTable(Expression|string $table)

Wrap a table in keyword identifiers.

from  Grammar
string
wrap(Expression|string $value, bool $prefixAlias = false)

Wrap a value in keyword identifiers.

from  Grammar
string
wrapAliasedValue(string $value, bool $prefixAlias = false)

Wrap a value that has an alias.

from  Grammar
string
wrapSegments(array $segments)

Wrap the given value segments.

from  Grammar
string
wrapValue(string $value)

Wrap a single string in keyword identifiers.

from  Grammar
string
columnize(array $columns)

Convert an array of column names into a delimited string.

from  Grammar
string
parameterize(array $values)

Create query parameter place-holders for an array.

from  Grammar
string
parameter(mixed $value)

Get the appropriate query parameter place-holder for a value.

from  Grammar
bool
isExpression(mixed $value)

Determine if the given value is a raw expression.

from  Grammar
string
getValue(Expression $expression)

Get the value of a raw expression.

from  Grammar
string
getDateFormat()

Get the format for database stored dates.

from  Grammar
string
getTablePrefix()

Get the grammar's table prefix.

from  Grammar
$this
setTablePrefix(string $prefix)

Set the grammar's table prefix.

from  Grammar
array
compileRenameColumn(Blueprint $blueprint, Fluent $command, Connection $connection)

Compile a rename column command.

from  Grammar
array
compileChange(Blueprint $blueprint, Fluent $command, Connection $connection)

Compile a change column command into a series of SQL statements.

from  Grammar
string
compileForeign(Blueprint $blueprint, Fluent $command)

Compile a foreign key command.

from  Grammar
array
getColumns(Blueprint $blueprint)

Compile the blueprint's column definitions.

from  Grammar
string
getType(Fluent $column)

Get the SQL for the column data type.

from  Grammar
string
addModifiers(string $sql, Blueprint $blueprint, Fluent $column)

Add the column modifiers to the definition.

from  Grammar
Fluent|null
getCommandByName(Blueprint $blueprint, string $name)

Get the primary key command if it exists on the blueprint.

from  Grammar
array
getCommandsByName(Blueprint $blueprint, string $name)

Get all of the commands with a given name.

from  Grammar
array
prefixArray(string $prefix, array $values)

Add a prefix to an array of values.

from  Grammar
string
getDefaultValue(mixed $value)

Format a value so that it can be used in "default" clauses.

from  Grammar
TableDiff
getDoctrineTableDiff(Blueprint $blueprint, AbstractSchemaManager $schema)

Create an empty Doctrine DBAL TableDiff from the Blueprint.

from  Grammar
bool
supportsSchemaTransactions()

Check if this Grammar supports schema changes wrapped in a transaction.

from  Grammar
string
compileTableExists()

Compile the query to determine if a table exists.

string
compileColumnListing(string $table)

Compile the query to determine the list of columns.

string
compileCreate(Blueprint $blueprint, Fluent $command)

Compile a create table command.

string
compileAdd(Blueprint $blueprint, Fluent $command)

Compile a column addition table command.

string
compilePrimary(Blueprint $blueprint, Fluent $command)

Compile a primary key command.

string
compileUnique(Blueprint $blueprint, Fluent $command)

Compile a unique key command.

string
compileIndex(Blueprint $blueprint, Fluent $command)

Compile a plain index key command.

string
compileDrop(Blueprint $blueprint, Fluent $command)

Compile a drop table command.

string
compileDropIfExists(Blueprint $blueprint, Fluent $command)

Compile a drop table (if exists) command.

string
compileDropColumn(Blueprint $blueprint, Fluent $command)

Compile a drop column command.

string
compileDropPrimary(Blueprint $blueprint, Fluent $command)

Compile a drop primary key command.

string
compileDropUnique(Blueprint $blueprint, Fluent $command)

Compile a drop unique key command.

string
compileDropIndex(Blueprint $blueprint, Fluent $command)

Compile a drop index command.

string
compileDropForeign(Blueprint $blueprint, Fluent $command)

Compile a drop foreign key command.

string
compileRename(Blueprint $blueprint, Fluent $command)

Compile a rename table command.

string
compileEnableForeignKeyConstraints()

Compile the command to enable foreign key constraints.

string
compileDisableForeignKeyConstraints()

Compile the command to disable foreign key constraints.

string
typeChar(Fluent $column)

Create the column definition for a char type.

string
typeString(Fluent $column)

Create the column definition for a string type.

string
typeText(Fluent $column)

Create the column definition for a text type.

string
typeMediumText(Fluent $column)

Create the column definition for a medium text type.

string
typeLongText(Fluent $column)

Create the column definition for a long text type.

string
typeInteger(Fluent $column)

Create the column definition for an integer type.

string
typeBigInteger(Fluent $column)

Create the column definition for a big integer type.

string
typeMediumInteger(Fluent $column)

Create the column definition for a medium integer type.

string
typeTinyInteger(Fluent $column)

Create the column definition for a tiny integer type.

string
typeSmallInteger(Fluent $column)

Create the column definition for a small integer type.

string
typeFloat(Fluent $column)

Create the column definition for a float type.

string
typeDouble(Fluent $column)

Create the column definition for a double type.

string
typeDecimal(Fluent $column)

Create the column definition for a decimal type.

string
typeBoolean(Fluent $column)

Create the column definition for a boolean type.

string
typeEnum(Fluent $column)

Create the column definition for an enum type.

string
typeJson(Fluent $column)

Create the column definition for a json type.

string
typeJsonb(Fluent $column)

Create the column definition for a jsonb type.

string
typeDate(Fluent $column)

Create the column definition for a date type.

string
typeDateTime(Fluent $column)

Create the column definition for a date-time type.

string
typeDateTimeTz(Fluent $column)

Create the column definition for a date-time type.

string
typeTime(Fluent $column)

Create the column definition for a time type.

string
typeTimeTz(Fluent $column)

Create the column definition for a time type.

string
typeTimestamp(Fluent $column)

Create the column definition for a timestamp type.

string
typeTimestampTz(Fluent $column)

Create the column definition for a timestamp type.

string
typeBinary(Fluent $column)

Create the column definition for a binary type.

string
typeUuid(Fluent $column)

Create the column definition for a uuid type.

string
typeIpAddress(Fluent $column)

Create the column definition for an IP address type.

string
typeMacAddress(Fluent $column)

Create the column definition for a MAC address type.

string|null
modifyCollate(Blueprint $blueprint, Fluent $column)

Get the SQL for a collation column modifier.

string|null
modifyNullable(Blueprint $blueprint, Fluent $column)

Get the SQL for a nullable column modifier.

string|null
modifyDefault(Blueprint $blueprint, Fluent $column)

Get the SQL for a default column modifier.

string|null
modifyIncrement(Blueprint $blueprint, Fluent $column)

Get the SQL for an auto-increment column modifier.

Details

in Grammar at line 22
array wrapArray(array $values)

Wrap an array of values.

Parameters

array $values

Return Value

array

in Grammar at line 192
string wrapTable(Expression|string $table)

Wrap a table in keyword identifiers.

Parameters

Expression|string $table

Return Value

string

in Grammar at line 206
string wrap(Expression|string $value, bool $prefixAlias = false)

Wrap a value in keyword identifiers.

Parameters

Expression|string $value
bool $prefixAlias

Return Value

string

in Grammar at line 72
protected string wrapAliasedValue(string $value, bool $prefixAlias = false)

Wrap a value that has an alias.

Parameters

string $value
bool $prefixAlias

Return Value

string

in Grammar at line 94
protected string wrapSegments(array $segments)

Wrap the given value segments.

Parameters

array $segments

Return Value

string

in Grammar at line 109
protected string wrapValue(string $value)

Wrap a single string in keyword identifiers.

Parameters

string $value

Return Value

string

in Grammar at line 124
string columnize(array $columns)

Convert an array of column names into a delimited string.

Parameters

array $columns

Return Value

string

in Grammar at line 135
string parameterize(array $values)

Create query parameter place-holders for an array.

Parameters

array $values

Return Value

string

in Grammar at line 146
string parameter(mixed $value)

Get the appropriate query parameter place-holder for a value.

Parameters

mixed $value

Return Value

string

in Grammar at line 157
bool isExpression(mixed $value)

Determine if the given value is a raw expression.

Parameters

mixed $value

Return Value

bool

in Grammar at line 168
string getValue(Expression $expression)

Get the value of a raw expression.

Parameters

Expression $expression

Return Value

string

in Grammar at line 178
string getDateFormat()

Get the format for database stored dates.

Return Value

string

in Grammar at line 188
string getTablePrefix()

Get the grammar's table prefix.

Return Value

string

in Grammar at line 199
$this setTablePrefix(string $prefix)

Set the grammar's table prefix.

Parameters

string $prefix

Return Value

$this

in Grammar at line 30
array compileRenameColumn(Blueprint $blueprint, Fluent $command, Connection $connection)

Compile a rename column command.

Parameters

Blueprint $blueprint
Fluent $command
Connection $connection

Return Value

array

in Grammar at line 45
array compileChange(Blueprint $blueprint, Fluent $command, Connection $connection)

Compile a change column command into a series of SQL statements.

Parameters

Blueprint $blueprint
Fluent $command
Connection $connection

Return Value

array

Exceptions

RuntimeException

in Grammar at line 57
string compileForeign(Blueprint $blueprint, Fluent $command)

Compile a foreign key command.

Parameters

Blueprint $blueprint
Fluent $command

Return Value

string

in Grammar at line 96
protected array getColumns(Blueprint $blueprint)

Compile the blueprint's column definitions.

Parameters

Blueprint $blueprint

Return Value

array

in Grammar at line 118
protected string getType(Fluent $column)

Get the SQL for the column data type.

Parameters

Fluent $column

Return Value

string

in Grammar at line 131
protected string addModifiers(string $sql, Blueprint $blueprint, Fluent $column)

Add the column modifiers to the definition.

Parameters

string $sql
Blueprint $blueprint
Fluent $column

Return Value

string

in Grammar at line 149
protected Fluent|null getCommandByName(Blueprint $blueprint, string $name)

Get the primary key command if it exists on the blueprint.

Parameters

Blueprint $blueprint
string $name

Return Value

Fluent|null

in Grammar at line 165
protected array getCommandsByName(Blueprint $blueprint, string $name)

Get all of the commands with a given name.

Parameters

Blueprint $blueprint
string $name

Return Value

array

in Grammar at line 179
array prefixArray(string $prefix, array $values)

Add a prefix to an array of values.

Parameters

string $prefix
array $values

Return Value

array

in Grammar at line 219
protected string getDefaultValue(mixed $value)

Format a value so that it can be used in "default" clauses.

Parameters

mixed $value

Return Value

string

in Grammar at line 237
TableDiff getDoctrineTableDiff(Blueprint $blueprint, AbstractSchemaManager $schema)

Create an empty Doctrine DBAL TableDiff from the Blueprint.

Parameters

Blueprint $blueprint
AbstractSchemaManager $schema

Return Value

TableDiff

in Grammar at line 251
bool supportsSchemaTransactions()

Check if this Grammar supports schema changes wrapped in a transaction.

Return Value

bool

at line 29
string compileTableExists()

Compile the query to determine if a table exists.

Return Value

string

at line 40
string compileColumnListing(string $table)

Compile the query to determine the list of columns.

Parameters

string $table

Return Value

string

at line 54
string compileCreate(Blueprint $blueprint, Fluent $command)

Compile a create table command.

Parameters

Blueprint $blueprint
Fluent $command

Return Value

string

at line 68
string compileAdd(Blueprint $blueprint, Fluent $command)

Compile a column addition table command.

Parameters

Blueprint $blueprint
Fluent $command

Return Value

string

at line 83
string compilePrimary(Blueprint $blueprint, Fluent $command)

Compile a primary key command.

Parameters

Blueprint $blueprint
Fluent $command

Return Value

string

at line 99
string compileUnique(Blueprint $blueprint, Fluent $command)

Compile a unique key command.

Parameters

Blueprint $blueprint
Fluent $command

Return Value

string

at line 115
string compileIndex(Blueprint $blueprint, Fluent $command)

Compile a plain index key command.

Parameters

Blueprint $blueprint
Fluent $command

Return Value

string

at line 131
string compileDrop(Blueprint $blueprint, Fluent $command)

Compile a drop table command.

Parameters

Blueprint $blueprint
Fluent $command

Return Value

string

at line 143
string compileDropIfExists(Blueprint $blueprint, Fluent $command)

Compile a drop table (if exists) command.

Parameters

Blueprint $blueprint
Fluent $command

Return Value

string

at line 158
string compileDropColumn(Blueprint $blueprint, Fluent $command)

Compile a drop column command.

Parameters

Blueprint $blueprint
Fluent $command

Return Value

string

at line 172
string compileDropPrimary(Blueprint $blueprint, Fluent $command)

Compile a drop primary key command.

Parameters

Blueprint $blueprint
Fluent $command

Return Value

string

at line 186
string compileDropUnique(Blueprint $blueprint, Fluent $command)

Compile a drop unique key command.

Parameters

Blueprint $blueprint
Fluent $command

Return Value

string

at line 200
string compileDropIndex(Blueprint $blueprint, Fluent $command)

Compile a drop index command.

Parameters

Blueprint $blueprint
Fluent $command

Return Value

string

at line 214
string compileDropForeign(Blueprint $blueprint, Fluent $command)

Compile a drop foreign key command.

Parameters

Blueprint $blueprint
Fluent $command

Return Value

string

at line 228
string compileRename(Blueprint $blueprint, Fluent $command)

Compile a rename table command.

Parameters

Blueprint $blueprint
Fluent $command

Return Value

string

at line 240
string compileEnableForeignKeyConstraints()

Compile the command to enable foreign key constraints.

Return Value

string

at line 250
string compileDisableForeignKeyConstraints()

Compile the command to disable foreign key constraints.

Return Value

string

at line 261
protected string typeChar(Fluent $column)

Create the column definition for a char type.

Parameters

Fluent $column

Return Value

string

at line 272
protected string typeString(Fluent $column)

Create the column definition for a string type.

Parameters

Fluent $column

Return Value

string

at line 283
protected string typeText(Fluent $column)

Create the column definition for a text type.

Parameters

Fluent $column

Return Value

string

at line 294
protected string typeMediumText(Fluent $column)

Create the column definition for a medium text type.

Parameters

Fluent $column

Return Value

string

at line 305
protected string typeLongText(Fluent $column)

Create the column definition for a long text type.

Parameters

Fluent $column

Return Value

string

at line 316
protected string typeInteger(Fluent $column)

Create the column definition for an integer type.

Parameters

Fluent $column

Return Value

string

at line 327
protected string typeBigInteger(Fluent $column)

Create the column definition for a big integer type.

Parameters

Fluent $column

Return Value

string

at line 338
protected string typeMediumInteger(Fluent $column)

Create the column definition for a medium integer type.

Parameters

Fluent $column

Return Value

string

at line 349
protected string typeTinyInteger(Fluent $column)

Create the column definition for a tiny integer type.

Parameters

Fluent $column

Return Value

string

at line 360
protected string typeSmallInteger(Fluent $column)

Create the column definition for a small integer type.

Parameters

Fluent $column

Return Value

string

at line 371
protected string typeFloat(Fluent $column)

Create the column definition for a float type.

Parameters

Fluent $column

Return Value

string

at line 382
protected string typeDouble(Fluent $column)

Create the column definition for a double type.

Parameters

Fluent $column

Return Value

string

at line 393
protected string typeDecimal(Fluent $column)

Create the column definition for a decimal type.

Parameters

Fluent $column

Return Value

string

at line 404
protected string typeBoolean(Fluent $column)

Create the column definition for a boolean type.

Parameters

Fluent $column

Return Value

string

at line 415
protected string typeEnum(Fluent $column)

Create the column definition for an enum type.

Parameters

Fluent $column

Return Value

string

at line 426
protected string typeJson(Fluent $column)

Create the column definition for a json type.

Parameters

Fluent $column

Return Value

string

at line 437
protected string typeJsonb(Fluent $column)

Create the column definition for a jsonb type.

Parameters

Fluent $column

Return Value

string

at line 448
protected string typeDate(Fluent $column)

Create the column definition for a date type.

Parameters

Fluent $column

Return Value

string

at line 459
protected string typeDateTime(Fluent $column)

Create the column definition for a date-time type.

Parameters

Fluent $column

Return Value

string

at line 470
protected string typeDateTimeTz(Fluent $column)

Create the column definition for a date-time type.

Parameters

Fluent $column

Return Value

string

at line 481
protected string typeTime(Fluent $column)

Create the column definition for a time type.

Parameters

Fluent $column

Return Value

string

at line 492
protected string typeTimeTz(Fluent $column)

Create the column definition for a time type.

Parameters

Fluent $column

Return Value

string

at line 503
protected string typeTimestamp(Fluent $column)

Create the column definition for a timestamp type.

Parameters

Fluent $column

Return Value

string

at line 520
protected string typeTimestampTz(Fluent $column)

Create the column definition for a timestamp type.

Parameters

Fluent $column

Return Value

string

at line 535
protected string typeBinary(Fluent $column)

Create the column definition for a binary type.

Parameters

Fluent $column

Return Value

string

at line 546
protected string typeUuid(Fluent $column)

Create the column definition for a uuid type.

Parameters

Fluent $column

Return Value

string

at line 557
protected string typeIpAddress(Fluent $column)

Create the column definition for an IP address type.

Parameters

Fluent $column

Return Value

string

at line 568
protected string typeMacAddress(Fluent $column)

Create the column definition for a MAC address type.

Parameters

Fluent $column

Return Value

string

at line 580
protected string|null modifyCollate(Blueprint $blueprint, Fluent $column)

Get the SQL for a collation column modifier.

Parameters

Blueprint $blueprint
Fluent $column

Return Value

string|null

at line 594
protected string|null modifyNullable(Blueprint $blueprint, Fluent $column)

Get the SQL for a nullable column modifier.

Parameters

Blueprint $blueprint
Fluent $column

Return Value

string|null

at line 606
protected string|null modifyDefault(Blueprint $blueprint, Fluent $column)

Get the SQL for a default column modifier.

Parameters

Blueprint $blueprint
Fluent $column

Return Value

string|null

at line 620
protected string|null modifyIncrement(Blueprint $blueprint, Fluent $column)

Get the SQL for an auto-increment column modifier.

Parameters

Blueprint $blueprint
Fluent $column

Return Value

string|null