如何在Sql Azure中重置标识种子

我尝试了以下操作以重置我的列的标识种子:

DBCC CHECKIDENT ('dbo.Stuff', RESEED, 0) 

这在sql azure中不起作用,我想知道这样做的最佳方法是什么。 删除并重新创建表格?

如您所见, Windows Azure SQL数据库目前不支持DBCC CHECKIDENT 。 重新设置标识的最完整方法是创建一个具有相同结构的新表,并将标识设置为Reseed值IDENTITY(reseedval,1),使用SET IDENTITY_INSERT tablename ON从原始表加载现有记录,然后删除旧表,并重命名新表。 重置权限,重置约束等

我认为@ haldyr的答案可能被公正地删除了。

最新版本的SQL Azure(v12)支持DBCC CHECKIDENT ( 以及其他一些 )但是如果您的azure数据库服务器不是全新的,则需要升级。

升级很容易,在新门户(实际服务器而不是数据库本身)上转到您的Azure数据库服务器,然后单击Latest Update的大Latest Update按钮。

在此处输入图像描述

注意:请注意升级有一些警告(就像一些旧的东西不支持它),因此值得阅读文章http://azure.microsoft.com/en-us/documentation/articles/sql-数据库预览什么新/#V12AzureSqlDbPreviewGaTable

我自己最近遇到了这个问题。 我通过插入和删除表中的项目来解决它,直到我达到所需的种子值。

在下面的示例中,这将重新设置Users表,以便下一个新项目的Id为3500。

 BEGIN TRANSACTION GO DECLARE @max_id int SELECT @max_id = max([Id]) FROM users WHILE (@max_id < 3499) BEGIN INSERT INTO Users (Username, Password) VALUES ('','') SELECT @max_id = max([Id]) FROM Users DELETE FROM Users WHERE [Id] = @max_id END COMMIT 

希望这可以帮助。