我正在排除一个db(而不是我的强项),它有一些在id列上自动递增的表,而有些表不是?
现在所有表都设置为标识并标记为禁止null。我正在使用SSMS还可以检查或做些什么来使这些表恢复为自动递增?
TIA
有趣的是对我来说......对你们来说可能是个老消息。这个问题与现有数据有关。因此,例如, NOT 中有100行的表具有标识列设置。所以我会进去并用一个增加1的种子使它成为一个身份。那么种子在某种程度上遇到了麻烦,因为那里已经有100行了。因此,对于我的所有表格,我必须进行行计数并从下一行中获取身份。现在它按预期工作了。
答案 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>
替换为适当的值。
另一种可能性是,“看起来”为非递增的数据可能已被推送到设置标识插入并推出显式值的会话。