Наследование: SchemaNamedElement
Пример #1
0
		public static int GetDiffColumnsCount(this TableSchema table1, TableSchema table2)
		{
			if (table1 == null)
				throw new ArgumentNullException("table1");
			if (table2 == null)
				throw new ArgumentNullException("table2");

			return table1.Columns.Count(column => !table2.IsColumnExist(column.Name));
		}
Пример #2
0
		protected string MakeDdlKeyDrop(KeySchema key, TableSchema table)
		{
			return string.Format(@"ALTER TABLE {0} DROP CONSTRAINT {1}",
				MakeDdlElementName(table.Name), MakeDdlElementName(key.Name));
		}
Пример #3
0
		protected string MakeDdlKeyCreateByAlter(KeySchema key, TableSchema table)
		{
			return string.Format(@"ALTER TABLE {0} ADD CONSTRAINT {1} {2}",
				MakeDdlElementName(table.Name), MakeDdlElementName(key.Name),
				ParseKey(key));
		}
Пример #4
0
		protected string MakeDdlDefaultCreate(KeySchema key, TableSchema table)
		{
			return string.Format(@"ALTER TABLE {0} ADD CONSTRAINT {1} DEFAULT {2} FOR {3}",
				MakeDdlElementName(table.Name), MakeDdlElementName(key.Name),
				key.Source, key.Columns);
		}
Пример #5
0
		protected virtual string MakeDdlColumnDrop(TableColumnSchema column, TableSchema table)
		{
			return string.Format(@"ALTER TABLE {0} DROP COLUMN {1}",
				MakeDdlElementName(table.Name), MakeDdlElementName(column.Name));
		}
Пример #6
0
		protected virtual string MakeDdlColumnAlter(TableColumnSchema mColumn, TableColumnSchema eColumn,
			TableSchema table)
		{
			return string.Format(@"ALTER TABLE {0} ALTER COLUMN {1}",
				MakeDdlElementName(table.Name), ParseColumnAlter(mColumn, eColumn));
		}
Пример #7
0
		private string MakeDdlColumnCreate(TableColumnSchema column, TableSchema table)
		{
			return string.Format(@"ALTER TABLE {0} ADD {1}",
				MakeDdlElementName(table.Name), ParseColumn(column));
		}
Пример #8
0
		private void HelperTableCreate(TableSchema mTable, int i)
		{
			AddDdlCommand(i,
				mTable.Name,
				"Table",
				MakeDdlTableCreate(mTable, false));

			foreach (var mIndex in mTable.Indexes)
				AddDdlCommand(i,
					mTable.Name + @"." + mIndex.Name,
					"Index",
					MakeDdlIndexCreate(mIndex, mTable));
			foreach (var mKey in mTable.Keys)
				AddDdlCommand(i,
					mTable.Name + @"." + mKey.Name,
					mKey.KeyType.ToString(),
					MakeDdlKeyCreateByAlter(mKey, mTable));
		}
Пример #9
0
		protected string MakeDdlTableRename(TableSchema table, string newName)
		{
			return string.Format(@"ALTER TABLE {0} RENAME TO {1}",
				MakeDdlElementName(table.Name), newName);
		}
Пример #10
0
		protected string MakeDdlTableDrop(TableSchema table)
		{
			return string.Format(@"DROP TABLE {0}",
				MakeDdlElementName(table.Name));
		}
Пример #11
0
		protected virtual string MakeDdlTableCreate(TableSchema table, bool withConstraint)
		{
			var stat = new StringBuilder();

			var firstColumn = true;
			foreach (var column in table.Columns)
			{
				if (!firstColumn)
					stat.Append(",\n\t");
				stat.Append(ParseColumn(column));
				firstColumn = false;
			}

			if (withConstraint)
			{
				if (!firstColumn)
					stat.Append(",\n\t");
				foreach (var key in table.Keys)
					stat.Append(@" " + ParseKey(key));
			}

			return string.Format(@"CREATE TABLE {0} ({1})",
				MakeDdlElementName(table.Name), stat);
		}
Пример #12
0
		public virtual void EndTableLoad(IDbConnection connection, TableSchema table)
		{}
Пример #13
0
		public virtual string MakeInsert(TableSchema table)
		{
			var columns = Array.ConvertAll(table.Columns, column => MakeDdlElementName(column.Name));
			var parameters = Array.ConvertAll(table.Columns, MakeParameterName);

			var query =
				string.Format("INSERT INTO\n\t{0}\n\t({1})\nVALUES\n\t({2})",
					MakeDdlElementName(table.Name),
					string.Join(",\n\t", columns),
					string.Join(",\n\t", parameters));

			return query;
		}
Пример #14
0
		public virtual string MakeSelect(TableSchema table, bool orderedByPK)
		{
			var columns = Array.ConvertAll(table.Columns, column => MakeDdlElementName(column.Name));

			var query = string.Format("SELECT\n\t{0}\nFROM\n\t{1}",
				string.Join(",\n\t", columns), MakeDdlElementName(table.Name));

			if (orderedByPK && table.KeyPrimary() != null
				&& !string.IsNullOrEmpty(table.KeyPrimary().Columns))
			{
				var keyColumns = table.KeyPrimary().Columns.Split(new[] {',', ' '},
					StringSplitOptions.RemoveEmptyEntries);
				keyColumns = Array.ConvertAll(keyColumns, MakeDdlElementName);
				query += "\nORDER BY\n\t" + string.Join(",\n\t", keyColumns);
			}

			return query;
		}
Пример #15
0
		private void HelperTableDrop(TableSchema eTable, IEnumerable<TableSchema> eTables, int i)
		{
			foreach (var table in eTables)
				foreach (var t in table.Keys)
					if (t.KeyType == ConstraintType.KeyForeign &&
						t.RelTable == eTable.Name)
						AddDdlCommand(i,
							table.Name + @"." + t.Name,
							t.KeyType.ToString(),
							MakeDdlKeyDrop(t, table));
			AddDdlCommand(i,
				eTable.Name,
				"Table",
				MakeDdlTableDrop(eTable));
		}
Пример #16
0
		protected abstract string MakeDdlIndexCreate(IndexSchema index, TableSchema table);
Пример #17
0
		protected virtual string MakeDdlIndexDrop(IndexSchema index, TableSchema table)
		{
			return string.Format(@"DROP INDEX {0} ON {1}",
				MakeDdlElementName(index.Name), MakeDdlElementName(table.Name));
		}
Пример #18
0
		protected string MakeDdlTableCopy(TableSchema toTable, TableSchema fromTable)
		{
			return string.Format(@"INSERT INTO {0}({1}) SELECT {3} FROM {2}",
				MakeDdlElementName(toTable.Name), toTable.ColumnsList(MakeDdlElementName),
				MakeDdlElementName(fromTable.Name), fromTable.ColumnsList(MakeDdlElementName));
		}