我曾尝试以下,以重置列的我的标识种子:
DBCC CHECKIDENT ('dbo.Stuff', RESEED, 0)
这并不在SQL Azure中工作,我想知道什么将去这样做的最佳方式。 删除并重新创建表?
我曾尝试以下,以重置列的我的标识种子:
DBCC CHECKIDENT ('dbo.Stuff', RESEED, 0)
这并不在SQL Azure中工作,我想知道什么将去这样做的最佳方式。 删除并重新创建表?
正如你所看到的, DBCC CHECKIDENT目前不支持在Windows Azure中的SQL数据库 。 补种的身份最完整的方法是创建一个新表具有相同的结构,并设置身份的重新设定种子值IDENTITY(reseedval,1),加载使用SET IDENTITY_INSERT表名从原来的表中已有的记录,然后删除旧表,并重新命名新的。 复位权限,复位约束等
我觉得@ haldyr的答案可能是不公平的删除,因为它是正确的。
SQL Azure的(V12)的最新版本不支持DBCC CHECKIDENT
( 和一堆别人的 ),但是如果你的Azure数据库服务器不是全新的,你将需要升级。
升级很容易,去你蔚蓝的数据库服务器上的新门户(实际的服务器不是DB本身),然后点击大Latest Update
按钮。
注意:要知道有一堆告诫,以升级(像一些旧的东西不支持),所以它值得一读的文章http://azure.microsoft.com/en-us/documentation/articles/sql-数据库预览什么新/#V12AzureSqlDbPreviewGaTable
我最近碰到这个问题我自己。 我通过插入和删除项目表中,直到我达到所需的种子值解决它。
在下面的例子中,这将补种用户表,以便在未来新项目将有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
希望这可以帮助。