尽管是标识,但某些表id列不会自动递增

时间:2014-02-17 13:02:29

标签: sql-server tsql sql-server-2008-r2

我正在排除一个db(而不是我的强项),它有一些在id列上自动递增的表,而有些表不是?

现在所有表都设置为标识并标记为禁止null。我正在使用SSMS还可以检查或做些什么来使这些表恢复为自动递增?

TIA

有趣的是对我来说......对你们来说可能是个老消息。这个问题与现有数据有关。因此,例如, NOT 中有100行的表具有标识列设置。所以我会进去并用一个增加1的种子使它成为一个身份。那么种子在某种程度上遇到了麻烦,因为那里已经有100行了。因此,对于我的所有表格,我必须进行行计数并从下一行中获取身份。现在它按预期工作了。

2 个答案:

答案 0 :(得分:0)

ALTER TABLE YourTable MODIFY COLUMN YourTable_id int(4) auto_increment

答案 1 :(得分:0)

拥有IDENTITY列对于表来说非常简单,如果您在插入时看到列的自动递增行为,那么我首先验证您的列确实是一个IDENTITY列:

use <Your Database Name>;
go

select
    name,
    is_identity
from sys.columns
where object_id = object_id('<Your Table Name>')
order by column_id;

<Your Database Nam><Your Table Name>替换为适当的值。

另一种可能性是,“看起来”为非递增的数据可能已被推送到设置标识插入并推出显式值的会话。