查找最小的未使用的数字SQL Server

时间:2014-10-15 11:37:21

标签: sql sql-server

我正在尝试创建查询以查找最小的未使用数字。我之前使用的查询从数据库中获取了最大数+1,但我想更改此查询以获得最小的未使用数字。

要获得最大数字+1,请使用此代码(有效):

public void getType()
{
        String query = "SELECT Max(IncIncidentType) FROM IncIncidentType;";    
        cmd.Connection = SqlServerConnection.sqlConnection;
        cmd.CommandText = query;

        SqlServerConnection.sqlConnection.Open();
        String maxTypeId = cmd.ExecuteScalar().ToString();
        SqlServerConnection.sqlConnection.Close();

        if (maxTypeId == "")
        {
            incidentTypeId.Text = "0";
        }
        else
            incidentTypeId.Text = (Convert.ToInt32(maxTypeId) + 1).ToString(); 
}

我找到了一些可能的答案,比如

SELECT TOP 1 
   t1.Id + 1 
FROM 
   table t1
WHERE 
   NOT EXISTS(SELECT * FROM table t2 WHERE t2.Id = t1.Id + 1)
ORDER BY 
   t1.Id

当我尝试将此查询更改为适用于我的数据库时,我得到一个错误的ID(我得到的ID已经在使用中)。如何使此查询适用于我的数据库?

这里有我的数据库结构的一些图片

enter image description here

http://i59.tinypic.com/1jxjdy.png

在下图中的情况下,我想回到0。

enter image description here

http://i58.tinypic.com/2s141n6.png

0 个答案:

没有答案