Esempio n. 1
0
		StringBuilder ScriptTable(DataBossTable table, StringBuilder result) {
			result.Append("create table ");
			AppendTableName(result, table)
				.Append("(");
			
			table.GetColumns().ForEach(x => ScriptColumn(result, x));

			result.AppendLine();
			return result.Append(')');
		}
Esempio n. 2
0
		StringBuilder ScriptConstraints(DataBossTable table, StringBuilder result) {
			var columns = table.GetColumns().ToList();

			var clustered = columns.Where(x => x.Any<ClusteredAttribute>())
				.Select(x => x.Name)
				.ToList();
			if(clustered.Count > 0)
				result.AppendFormat("create clustered index IX_{0}_{1} on [{0}]({2})",
					table.Name,
					string.Join("_", clustered),
					string.Join(",", clustered)
				).AppendLine();

			var keys = columns.Where(x => x.Any<KeyAttribute>())
				.Select(x => x.Name)
				.ToList();
			if(keys.Count > 0) {
				result
					.AppendFormat(result.Length == 0 ? string.Empty : Environment.NewLine)
					.AppendFormat("alter table [{0}]", table.Name)
					.AppendLine()
					.AppendFormat("add constraint PK_{0} primary key(", table.Name)
					.Append(string.Join(",", keys))
					.Append(")");
			}
			return result;
		}