表名为变量的存储过程怎么写?
我写了一个存储过程:
CREATE proc select_record
@table_name varchar(20)
as
SELECT TOP 5 * FROM [@table_name] ORDER BY ID DESC
GO
在c#里调用:
SqlCommand comm = new SqlCommand("select_record", conn);
comm.CommandType = CommandType.StoredProcedure;
comm.Parameters.Add("@table_name", SqlDbType.VarChar, 11);
comm.Parameters["@table_name"].Direction =ParameterDirection.Input;
comm.Parameters["@table_name"].Value = "accident.accident.危险化学品";
SqlDataReader dtr;
dtr=comm.ExecuteReader();
运行时老报错:
异常详细信息: System.Data.SqlClient.SqlException: 对象名 '@table_name' 无效。
不知是存储过程有问题还是其他地方的问题?? 谢谢各位!!!