パラメータ付きの SqlCommand を使用して、テーブル内の列の 1 つのデータ型を変更しようとしていますが、うまくいきません。これが私のコードです:
Dictionary<string,string> dict = new Dictionary<string,string>();
dict.Add("@TableName",TableColumnArray[0].ToString( ));
dict.Add("@ColumnName",TableColumnArray[1].ToString( ));
DBSql.ExecSQLStatement( "ALTER TABLE @TableName ALTER COLUMN @ColumnName varchar(MAX)",dict,connectionStringName);
public static void ExecSQLStatement (string strsql,Dictionary<string,string> dict,string connectionStringName)
{
SqlConnection con = CreateSqlConnectionStr(connectionStringName);
SqlCommand cmd = new SqlCommand(strsql,con);
foreach(string dictKey in dict.Keys)
{
cmd.Parameters.Add(new SqlParameter(dictKey,dict[dictKey]));
}
con.Open( );
cmd.ExecuteNonQuery( );
con.Close( );
}
しかし、コードはエラーをスローし続けます:「@TableName の近くの構文が正しくありません」。この問題の解決策が見つかりません。ストアド プロシージャを使用することもできますが、コードが機能しない理由を知りたいのです。私は通常、select、insertステートメントのパラメーターを指定してSqlCommandを使用しますが、alterステートメントでは機能しないようです?