Sqlserver-压缩和修复数据库

问题描述 投票:0回答:4

压缩和修复数据库是这样,我们可以使自动编号再次从1开始。。

如何使用t-sql代码在Sqlserver 2005中压缩和修复数据库?在ms.access中很容易做到。但是我被sqlserver卡住了。

我如何编写t-sql以执行此操作?

非常感谢

sql-server-2005 tsql
4个回答
0
投票

如果要重置IDENTITY()列的种子值(例如,在删除所有现有行之后,可以使用DBCC CHECKIDENT

DBCC CHECKIDENT

这必须在每个表的基础上完成。


0
投票
DBCC CHECKIDENT ("<Table Name>", RESEED, 1);

0
投票

MS访问中的压缩和修复不会(或至少不应)重置自动编号(在SQL Server中称为标识列)。

也就是说,我认为这篇文章对您有帮助:DBCC CHECKIDENT (<tablename>, RESEED, 0)


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,它将用于修复损坏的数据库。

© www.soinside.com 2019 - 2024. All rights reserved.