我正在尝试使用带有参数的 SqlCommand 更改表中某一列的数据类型,但它不起作用。这是我的代码:
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 附近的语法不正确”。我找不到这个问题的解决方案。我可以尝试使用存储过程,但我真的很想知道为什么代码不起作用。我通常将 SqlCommand 与参数一起用于 select、insert 语句,但它似乎不适用于 alter 语句?