0
我正在使用SMO在Sqlserver 2008中動態創建表格。現在我想使用SMO爲現有表格添加新列,但我試圖執行代碼,最終運行時異常的「改變失敗到餐桌」。我的代碼片段作爲如何使用SMO更改表格
public static bool Altertable(DynamicTable dynamicTable)
{
if (myDatabase.Tables.Contains(dynamicTable.Name))
{
Table myalterEmpTable = myDatabase.Tables[dynamicTable.Name];
var collist = new List<Column>();
foreach (var item in dynamicTable.Columns)
{
Column col = myalterEmpTable.Columns[item.Name];
if (col == null)
{
Column cols = new Column(myalterEmpTable, item.Name , DataType.UserDefinedDataType(item.Type));
cols.Nullable = item.IsNullable;
cols.Default = "";
collist.Add(cols);
}
}
/*Here I'm getting newly added columns only*/
foreach (var item in collist)
{
myalterEmpTable.Columns.Add(item);
}
try
{
myalterEmpTable.Alter();
}
catch (SmoException ex)
{
throw ex;
}
}
}
最後我發現了異常,因爲「改變失敗到餐桌」。即使還沒有一派幫助..所以我的問題是,用C#做這件事的最好方法是什麼?
完整的異常或可執行的例子,將有助於 – vossad01 2013-02-19 18:50:13
你可能有數據類型的問題,只要確保你有那個數據類型或嘗試其他內置的數據類型。 – 2013-02-22 16:51:28