public AuditTrigger(Table dataTable, AuditTable auditTable, INamingStrategy namingStrategy, TriggerActions action) : base(namingStrategy.GetTriggerName(dataTable, action), dataTable.GetQuotedName(), action) { _auditTable = auditTable; _dataColumnNames = ( from column in dataTable.ColumnIterator select column.GetQuotedName() ).ToArray(); }
public static string BuildSqlDropIndexString(Dialect.Dialect dialect, Table table, string name, string defaultCatalog, string defaultSchema) { var catalog = table.GetQuotedCatalog(dialect, defaultCatalog); var schema = table.GetQuotedSchema(dialect, defaultSchema); var tableName = table.GetQuotedName(dialect); return(new StringBuilder() .AppendLine(dialect.GetIfExistsDropConstraint(catalog, schema, tableName, name)) .Append("drop index ") .AppendLine(StringHelper.Qualify(table.GetQualifiedName(dialect, defaultCatalog, defaultSchema), name)) .Append(dialect.GetIfExistsDropConstraintEnd(catalog, schema, tableName, name)) .ToString()); }
protected override string GetSelectExistingObject(string name, Table table) { string schema = table.GetQuotedSchemaName(this); if (schema != null) { schema += "."; } string objName = string.Format("{0}{1}", schema, Quote(name)); string parentName = string.Format("{0}{1}", schema, table.GetQuotedName(this)); return string.Format( "select 1 from sys.objects where object_id = OBJECT_ID(N'{0}') AND parent_object_id = OBJECT_ID('{1}')", objName, parentName); }
/// <summary> /// Get the SQL string to drop this Constraint in the database. /// </summary> /// <param name="dialect">The <see cref="Dialect.Dialect"/> to use for SQL rules.</param> /// <param name="defaultCatalog"></param> /// <param name="defaultSchema"></param> /// <returns> /// A string that contains the SQL to drop this Constraint. /// </returns> public override string SqlDropString(Dialect.Dialect dialect, string defaultCatalog, string defaultSchema) { var catalog = Table.GetQuotedCatalog(dialect, defaultCatalog); var schema = Table.GetQuotedSchema(dialect, defaultSchema); var tableName = Table.GetQuotedName(dialect); return(new StringBuilder() .AppendLine(dialect.GetIfExistsDropConstraint(catalog, schema, tableName, Name)) .Append("alter table ") .Append(Table.GetQualifiedName(dialect, defaultCatalog, defaultSchema)) .AppendLine(dialect.GetDropPrimaryKeyConstraintString(Name)) .Append(dialect.GetIfExistsDropConstraintEnd(catalog, schema, tableName, Name)) .ToString()); }
public void TableNameNotQuoted() { Table tbl = new Table(); tbl.Name = "notkeyword"; Dialect.Dialect dialect = new Dialect.MsSql2000Dialect(); Assert.AreEqual( "notkeyword", tbl.GetQuotedName( dialect ) ); Assert.AreEqual( "dbo.notkeyword", tbl.GetQualifiedName( dialect, "dbo" ) ); Assert.AreEqual( "notkeyword", tbl.GetQualifiedName( dialect, null ) ); tbl.Schema = "sch"; Assert.AreEqual( "sch.notkeyword", tbl.GetQualifiedName( dialect ) ); }
public void TableNameQuoted() { Table tbl = new Table(); tbl.Name = "`keyword`"; Dialect.Dialect dialect = new MsSql2000Dialect(); Assert.AreEqual("[keyword]", tbl.GetQuotedName(dialect)); Assert.AreEqual("dbo.[keyword]", tbl.GetQualifiedName(dialect, null, "dbo")); Assert.AreEqual("[keyword]", tbl.GetQualifiedName(dialect, null, null)); tbl.Schema = "sch"; Assert.AreEqual("sch.[keyword]", tbl.GetQualifiedName(dialect)); }
protected virtual string GetSelectExistingObject(string name, Table table) { string objName = table.GetQuotedSchemaName(this) + Quote(name); return string.Format("select 1 from sysobjects where id = OBJECT_ID(N'{0}') AND parent_obj = OBJECT_ID('{1}')", objName, table.GetQuotedName(this)); }
public string GetLogicalTableName(Table table) { return GetLogicalTableName(table.GetQuotedSchema(), table.Catalog, table.GetQuotedName()); }
public IIdentifierGenerator CreateIdentifierGenerator(Dialect.Dialect dialect, string defaultCatalog, string defaultSchema, RootClass rootClass) { Dictionary <string, string> @params = new Dictionary <string, string>(); //if the hibernate-mapping did not specify a schema/catalog, use the defaults //specified by properties - but note that if the schema/catalog were specified //in hibernate-mapping, or as params, they will already be initialized and //will override the values set here (they are in identifierGeneratorProperties) if (!string.IsNullOrEmpty(defaultSchema)) { @params[PersistentIdGeneratorParmsNames.Schema] = defaultSchema; } if (!string.IsNullOrEmpty(defaultCatalog)) { @params[PersistentIdGeneratorParmsNames.Catalog] = defaultCatalog; } //pass the entity-name, if not a collection-id if (rootClass != null) { @params[IdGeneratorParmsNames.EntityName] = rootClass.EntityName; } //init the table here instead of earlier, so that we can get a quoted table name //TODO: would it be better to simply pass the qualified table name, instead of // splitting it up into schema/catalog/table names string tableName = Table.GetQuotedName(dialect); @params[PersistentIdGeneratorParmsNames.Table] = tableName; //pass the column name (a generated id almost always has a single column and is not a formula) IEnumerator enu = ColumnIterator.GetEnumerator(); enu.MoveNext(); string columnName = ((Column)enu.Current).GetQuotedName(dialect); @params[PersistentIdGeneratorParmsNames.PK] = columnName; if (rootClass != null) { StringBuilder tables = new StringBuilder(); bool commaNeeded = false; foreach (Table identityTable in rootClass.IdentityTables) { if (commaNeeded) { tables.Append(StringHelper.CommaSpace); } commaNeeded = true; tables.Append(identityTable.GetQuotedName(dialect)); } @params[PersistentIdGeneratorParmsNames.Tables] = tables.ToString(); } else { @params[PersistentIdGeneratorParmsNames.Tables] = tableName; } if (identifierGeneratorProperties != null) { ArrayHelper.AddAll(@params, identifierGeneratorProperties); } return(IdentifierGeneratorFactory.Create(identifierGeneratorStrategy, Type, @params, dialect)); }