| 
						
						
							
								
							
						
						
					 | 
					@ -113,7 +113,9 @@ namespace Apewer.Source | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    columns = lower.ToArray(); | 
					 | 
					 | 
					                    columns = lower.ToArray(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                } | 
					 | 
					 | 
					                } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                // 增加列。
 | 
					 | 
					 | 
					                // 找出新列。
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                var newColumns = new List<ColumnAttribute>(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                var newPrimaryKey = new List<PrimaryKey>(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                foreach (var column in structure.Columns) | 
					 | 
					 | 
					                foreach (var column in structure.Columns) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                { | 
					 | 
					 | 
					                { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    // 检查 Independent 特性。
 | 
					 | 
					 | 
					                    // 检查 Independent 特性。
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -124,11 +126,19 @@ namespace Apewer.Source | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    if (columns.Contains(lower)) continue; | 
					 | 
					 | 
					                    if (columns.Contains(lower)) continue; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    var type = Declaration(column); | 
					 | 
					 | 
					                    var type = Declaration(column); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    if (string.IsNullOrEmpty(type)) return TextUtility.Merge("类型 ", column.Type.ToString(), " 不受支持。"); | 
					 | 
					 | 
					                    if (string.IsNullOrEmpty(type)) return $"类型 {column.Type} 不受支持。"; | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    newColumns.Add(column); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    var sql = TextUtility.Merge("alter table [", table, "] add ", type, "; "); | 
					 | 
					 | 
					                // 执行:添加列。
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                if (newColumns.IsEmpty()) return TextUtility.Empty; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                foreach (var column in newColumns) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    var type = Declaration(column); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    var sql = $"alter table [{table}] add {type}; "; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    var execute = Execute(sql, null, false); | 
					 | 
					 | 
					                    var execute = Execute(sql, null, false); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    if (execute.Success == false) return execute.Message; | 
					 | 
					 | 
					                    if (!execute.Success) return execute.Message; | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					                } | 
					 | 
					 | 
					                } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                return TextUtility.Empty; | 
					 | 
					 | 
					                return TextUtility.Empty; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            } | 
					 | 
					 | 
					            } | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  |