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;
}
}
}
最後に、「alter fail to table」という例外が発生しました。グーグルでも助けがありません..だから私の質問は、C#を使用してこれを行う最良の方法は何ですか?