压缩和修复数据库是这样,我们可以使自动编号再次从1开始。。
如何使用t-sql代码在Sqlserver 2005中压缩和修复数据库?在ms.access中很容易做到。但是我被sqlserver卡住了。
我如何编写t-sql以执行此操作?
非常感谢
DBCC CHECKIDENT ("<Table Name>", RESEED, 1);
MS访问中的压缩和修复不会(或至少不应)重置自动编号(在SQL Server中称为标识列)。
也就是说,我认为这篇文章对您有帮助:DBCC CHECKIDENT (<tablename>, RESEED, 0)
首先,我们需要将数据库设置为单用户模式,运行修复,然后将数据库设置回多用户模式。
http://www.techrepublic.com/blog/datacenter/how-do-i-reseed-a-sql-server-identity-column/406
如果无法使用,您也可以使用软件恢复工具,正如我所说的ALTER DATABASE AdventureWorks2008R2 SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
BEGIN TRANSACTION;
DBCC CHECKDB ('Sellmdat2ksql', REPAIR_ALLOW_DATA_LOSS);
ALTER DATABASE AdventureWorks2008R2 SET MULTI_USER;
您可以使用工具here,它将用于修复损坏的数据库。