存储过程读取Min()的值

时间:2013-07-15 10:35:39

标签: stored-procedures sqldatareader

我试图在特定的表

中找到类型(int)的主键列的最小值

我的存储过程代码的一部分:

IF NOT EXISTS
(
    SELECT *
    FROM Table
)
BEGIN
    SELECT *
    FROM Table
END

ELSE
   BEGIN
      SELECT Min(ColumnOne)
      FROM Table
   END

这是我阅读后的主要代码:

if (!reader.Read())
    return "EMPTY TABLE";
else
    return reader.GetInt32(0).ToString();   

我的ExecuteReader没有问题,但是当我在声明

时遇到异常
reader.GetInt32(0).ToString()

我相信当我的表有多个条目时,我会错误地提取信息。我应该从读者那里得到的正确功能是什么?

1 个答案:

答案 0 :(得分:0)

我没有得到你的问题。 你在问题中指定了min()值你在T-SQL Script中编写了max()函数。

如果您想要检索列的下一个Val

,可以在下面尝试

选择isnull(max(ColumnOne),0)+1 FROM Tables

以上查询将返回给您 表格为空时为1 else max current Value + 1(下一个可用值) 从表。