/// <summary> /// Drops all common table expressions. This method should be called after each /// SELECT, INSERT, UPDATE, DELETE or MERGE statement /// </summary> /// <see href="https://docs.microsoft.com/en-us/sql/t-sql/queries/with-common-table-expression-transact-sql?view=sql-server-ver15"/> internal void DropCommonTableExpressions() { while (CurrentDatabaseObjectContext.Count > 0 && CurrentDatabaseObjectContext.Peek().Type.Equals(DatabaseObjectType.CTE)) { CurrentDatabaseObjectContext.Pop(); } }
/// <summary> /// Adds a database object to the current context stack and adds missing parts /// </summary> internal void AddDatabaseObjectToCurrentContext(DatabaseObject dbo) { if (dbo == null) { throw new ArgumentNullException("Invalid database object"); } CurrentDatabaseObjectContext.Push(dbo); }