Class SqlServerSqlBuilder
- Namespace
- LinqToDB.Internal.DataProvider.SqlServer
- Assembly
- linq2db.dll
public abstract class SqlServerSqlBuilder : BasicSqlBuilder<SqlServerOptions>, ISqlBuilder
- Inheritance
-
objectSqlServerSqlBuilder
- Implements
- Derived
- Inherited Members
- Extension Methods
Constructors
SqlServerSqlBuilder(IDataProvider?, MappingSchema, DataOptions, ISqlOptimizer, SqlProviderFlags)
protected SqlServerSqlBuilder(IDataProvider? provider, MappingSchema mappingSchema, DataOptions dataOptions, ISqlOptimizer sqlOptimizer, SqlProviderFlags sqlProviderFlags)
Parameters
providerIDataProvidermappingSchemaMappingSchemadataOptionsDataOptionssqlOptimizerISqlOptimizersqlProviderFlagsSqlProviderFlags
SqlServerSqlBuilder(BasicSqlBuilder)
protected SqlServerSqlBuilder(BasicSqlBuilder parentBuilder)
Parameters
parentBuilderBasicSqlBuilder
Properties
DeletedOutputTable
protected override string DeletedOutputTable { get; }
Property Value
InsertedOutputTable
protected override string InsertedOutputTable { get; }
Property Value
IsOverRequiredWithinGroup
true if provider requires OVER () clause to be present in window function WITHIN GROUP.
Currently only SQL Server
protected override bool IsOverRequiredWithinGroup { get; }
Property Value
OutputKeyword
protected override string OutputKeyword { get; }
Property Value
Methods
BuildCreateTableIdentityAttribute2(SqlField)
protected override void BuildCreateTableIdentityAttribute2(SqlField field)
Parameters
fieldSqlField
BuildCreateTablePrimaryKey(SqlCreateTableStatement, string, IEnumerable<string>)
protected override void BuildCreateTablePrimaryKey(SqlCreateTableStatement createTable, string pkName, IEnumerable<string> fieldNames)
Parameters
createTableSqlCreateTableStatementpkNamestringfieldNamesIEnumerable<string>
BuildDataTypeFromDataType(DbDataType, bool, bool)
protected override void BuildDataTypeFromDataType(DbDataType type, bool forCreateTable, bool canBeNull)
Parameters
typeDbDataTypeforCreateTableboolcanBeNullboolType could store
NULLvalues (could be used for column table type generation or for databases with explicit typee nullability like ClickHouse).
BuildDeleteClause(SqlDeleteStatement)
protected override void BuildDeleteClause(SqlDeleteStatement deleteStatement)
Parameters
deleteStatementSqlDeleteStatement
BuildDropTableStatement(SqlDropTableStatement)
protected override void BuildDropTableStatement(SqlDropTableStatement dropTable)
Parameters
dropTableSqlDropTableStatement
BuildEndCreateTableStatement(SqlCreateTableStatement)
protected override void BuildEndCreateTableStatement(SqlCreateTableStatement createTable)
Parameters
createTableSqlCreateTableStatement
BuildGetIdentity(SqlInsertClause)
protected override void BuildGetIdentity(SqlInsertClause insertClause)
Parameters
insertClauseSqlInsertClause
BuildIdentityInsert(SqlTableSource, bool)
protected void BuildIdentityInsert(SqlTableSource table, bool enable)
Parameters
tableSqlTableSourceenablebool
BuildInsertOrUpdateQuery(SqlInsertOrUpdateStatement)
protected override void BuildInsertOrUpdateQuery(SqlInsertOrUpdateStatement insertOrUpdate)
Parameters
insertOrUpdateSqlInsertOrUpdateStatement
BuildInsertQuery(SqlStatement, SqlInsertClause, bool)
protected override void BuildInsertQuery(SqlStatement statement, SqlInsertClause insertClause, bool addAlias)
Parameters
statementSqlStatementinsertClauseSqlInsertClauseaddAliasbool
BuildIsDistinctPredicate(IsDistinct)
protected override void BuildIsDistinctPredicate(SqlPredicate.IsDistinct expr)
Parameters
exprSqlPredicate.IsDistinct
BuildJoinType(SqlJoinedTable, SqlSearchCondition)
protected override bool BuildJoinType(SqlJoinedTable join, SqlSearchCondition condition)
Parameters
joinSqlJoinedTableconditionSqlSearchCondition
Returns
BuildObjectName(StringBuilder, SqlObjectName, ConvertType, bool, TableOptions, bool)
Writes database object name into provided StringBuilder instance.
public override StringBuilder BuildObjectName(StringBuilder sb, SqlObjectName name, ConvertType objectType = ConvertType.NameToQueryTable, bool escape = true, TableOptions tableOptions = TableOptions.NotSet, bool withoutSuffix = false)
Parameters
sbStringBuilderString builder for generated object name.
nameSqlObjectNameName of database object (e.g. table, view, procedure or function).
objectTypeConvertTypeType of database object, used to select proper name converter.
escapeboolIf true, apply required escaping to name components. Must be true except rare cases when escaping is not needed.
tableOptionsTableOptionsTable options if called for table. Used to properly generate names for temporary tables.
withoutSuffixboolIf object name have suffix, which could be detached from main name, this parameter disables suffix generation (enables generation of only main name part).
Returns
- StringBuilder
sbparameter value.
BuildOutputSubclause(SqlOutputClause?)
protected override void BuildOutputSubclause(SqlOutputClause? output)
Parameters
outputSqlOutputClause
BuildOutputSubclause(SqlStatement, SqlInsertClause)
protected override void BuildOutputSubclause(SqlStatement statement, SqlInsertClause insertClause)
Parameters
statementSqlStatementinsertClauseSqlInsertClause
BuildQueryExtensions(SqlStatement)
protected override void BuildQueryExtensions(SqlStatement statement)
Parameters
statementSqlStatement
BuildStartCreateTableStatement(SqlCreateTableStatement)
protected override void BuildStartCreateTableStatement(SqlCreateTableStatement createTable)
Parameters
createTableSqlCreateTableStatement
BuildTableExtensions(SqlTable, string)
protected override void BuildTableExtensions(SqlTable table, string alias)
Parameters
BuildTableNameExtensions(SqlTable)
protected override void BuildTableNameExtensions(SqlTable table)
Parameters
tableSqlTable
BuildTruncateTable(SqlTruncateTableStatement)
protected override void BuildTruncateTable(SqlTruncateTableStatement truncateTable)
Parameters
truncateTableSqlTruncateTableStatement
BuildTypedExpression(DbDataType, ISqlExpression)
protected override void BuildTypedExpression(DbDataType dataType, ISqlExpression value)
Parameters
dataTypeDbDataTypevalueISqlExpression
BuildUpdateClause(SqlStatement, SelectQuery, SqlUpdateClause)
protected override void BuildUpdateClause(SqlStatement statement, SelectQuery selectQuery, SqlUpdateClause updateClause)
Parameters
statementSqlStatementselectQuerySelectQueryupdateClauseSqlUpdateClause
BuildUpdateTableName(SelectQuery, SqlUpdateClause)
protected override void BuildUpdateTableName(SelectQuery selectQuery, SqlUpdateClause updateClause)
Parameters
selectQuerySelectQueryupdateClauseSqlUpdateClause
Convert(StringBuilder, string, ConvertType)
public override StringBuilder Convert(StringBuilder sb, string value, ConvertType convertType)
Parameters
sbStringBuildervaluestringconvertTypeConvertType
Returns
FirstFormat(SelectQuery)
protected override string? FirstFormat(SelectQuery selectQuery)
Parameters
selectQuerySelectQuery
Returns
GetProviderTypeName(IDataContext, DbParameter)
protected override string? GetProviderTypeName(IDataContext dataContext, DbParameter parameter)
Parameters
dataContextIDataContextparameterDbParameter
Returns
GetTypeName(IDataContext, DbParameter)
protected override string? GetTypeName(IDataContext dataContext, DbParameter parameter)
Parameters
dataContextIDataContextparameterDbParameter
Returns
GetUdtTypeName(IDataContext, DbParameter)
protected override string? GetUdtTypeName(IDataContext dataContext, DbParameter parameter)
Parameters
dataContextIDataContextparameterDbParameter
Returns
IsSqlValuesTableValueTypeRequired(SqlValuesTable, IReadOnlyList<List<ISqlExpression>>, int, int)
Checks that value in specific row and column in enumerable source requires type information generation.
protected override bool IsSqlValuesTableValueTypeRequired(SqlValuesTable source, IReadOnlyList<List<ISqlExpression>> rows, int row, int column)
Parameters
sourceSqlValuesTableMerge source table.
rowsIReadOnlyList<List<ISqlExpression>>Merge source data.
rowintIndex of data row to check. Could contain -1 to indicate that this is a check for empty source NULL value.
columnintIndex of data column to check in row.
Returns
- bool
Returns true, if generated SQL should include type information for value at specified position, otherwise false returned.
PrintParameterValue(StringBuilder, object?)
protected override bool PrintParameterValue(StringBuilder sb, object? value)
Parameters
sbStringBuildervalueobject