我有下面的代码应该能够获得主键的表如何获得一个表的SQL Server中的主键2008
public List<string> GetPrimaryKeysForTable(string tableName)
{
List<String> retVal = new List<string>();
SqlCommand command = connector.GetCommand("sp_pkeys");
command.CommandType = System.Data.CommandType.StoredProcedure;
command.Parameters.AddWithValue("@table_name", typeof(SqlChars)).Value = tableName;
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
retVal.Add(reader[3].ToString());
}
return retVal;
}
我有一个表在我的数据库称为Users
。当我通过Users
作为我的参数时,阅读器不返回任何结果。任何想法为什么这可能无法返回我的主键?
你确定你是对其中包含的数据库中执行该命令的'用户表(而不是'master'数据库,例如)? – RoccoC5 2011-12-20 16:38:32
您是否试过来自查询分析器的“exec sp_pkeys Users”? – Aaron 2011-12-20 16:41:01
嗨,你是否在这一行中获得正确的值:retVal.Add(reader [3] .ToString());?您还可以指定列名称而不是数字。这样你可以做一些事情:retVal.Add(reader [“key”]。ToString());并且如果您试图获得正确的列值,会更容易判断。 – Felipe 2011-12-20 16:43:23