在删除SQL Server 2008 Express中的行后是否可以重用标识字段值?这是一个例子。假设我有一个表,其中Id字段作为主键(标识)。如果我添加五行,我将有这5个ID:1,2,3,4,5。如果我要删除这些行,然后再添加5行,新行将有ID:6,7,8, 9,10。是否可以让它从1开始重新开始?
我是否必须从另一个表中删除数据才能完成此操作?谢谢你的帮助。
答案 0 :(得分:2)
在删除SQL Server 2008 Express中的行后是否可以重用标识字段值?
是的, ,但这是您可以做出的最糟糕的决定之一 。
这太糟糕了,我不会解释怎么做,但这就是为什么这很糟糕。
我们使用标识列生成与表所包含的数据无关的值。
INT
或BIGINT
最大值足以支持大多数商家数据。当您确实需要填充标识列中的空白空白时,我无法想到一个真实的情况,因为此值的目的与表所代表的实体无关。
答案 1 :(得分:1)
如果您要删除表格中的所有数据,可以使用TRUNCATE TABLE,这将帮助您删除表格中的整个数据并重置身份以从SEED值开始。
TRUNCATE TABLE MyTable
您还可以使用DBCC CHECKIDENT将您的身份重新设置为特定值。
DBCC CHECKIDENT ('dbo.MyTable', RESEED, 1);
以下代码将reed身份从1开始。
最后,如果你需要弥补差距,你需要知道,使用IDENTITY你可以弥补差距,你需要实现自定义功能,使其像IDENTITY一样,并弥补差距。
答案 2 :(得分:0)
如果您从Autoincrement
删除ID
属性,则可能。
您可以检查表格是否为空,并INSERT
相应值。
答案 3 :(得分:0)
我们可以通过两种方式来做到这一点。
如果是非Pk列,请插入具有相同标识号的记录,然后删除先前的标识列值。
如果您不需要owl数据,请删除该表并重新创建该表或截断该表并使用DBCC CHECKIDENT将您的标识重新设置为特定值。