1、DBCC ? CHECKIDENT ? ? 检查指定表的当前标识值,如有必要,还对标识值进行更正。 ? ? ? ? 语法 ? ? DBCC ? CHECKIDENT ? ? ? ? ? ? ( ? 'table_name' ? ? ? ? ? ? ? ? ? ? [ ?,? { ? NORESEED ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | ? { ? RESEED ? [ ?,? new_reseed_value ? ] ? } ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? ? ] ? ? ? ? ? ? ? ) ? ? ? ? 参数 ? ? 'table_name' ? ? ? ? 是要对其当前标识值进行检查的表名。表名必须符合标识符规则。有关更多信息,请参见使用标识符。指定的表必须包含标识列。 ? ? ? ? NORESEED ? ? ? ? 指定不应更正当前标识值。 ? ? ? ? RESEED ? ? ? ? 指定应该更正当前标识值。 ? ? ? ? new_reseed_value ? ? ? ? 是在标识列中重新赋值时要使用的值。??? ???
例子:
DBCC ? CHECKIDENT ? (jobs,? RESEED,? 30) ? 只是指定应该更正当前标识值,并不修改标识种子值。
?
我们可以通过事件探查器跟踪在企业管理器中修改表的标识种子值时,SQL ? Server自身的处理机制: ? ? ? ? 1、创建与原表结构相同的新表tmp_原表名,自增列的标识种子值为在企业管理器中修改之后的标识种子值??? ??? ? 2、如果原表中存在数据: ? ? ? ? ? SET ? IDENTITY_INSERT ? ON ? ? ? ? ? INSERT ? INTO ? tmp_原表名 ? select ? * ? from ? 原表名 ? ? ? ? ? SET ? IDENTITY_INSERT ? OFF ? ? ? ? 3、drop ? table ? 原表名 ? ? ? ? 4、将tmp_原表名重命名为原表名
?
?
2、查询数据库中所有表的大小
--查询数据库中所有表的大小 --writer:zjcxc
================================================================== -- sp_MSforeachtable?? --?? 这个系统存储过程有7个参数:?? --?? @command1?? nvarchar(2000),--第一条运行的T-SQL指令?? --?? @replacechar?? nchar(1)?? =?? N'?',--指定的占位符号???? --?? @command2?? nvarchar(2000)?? =?? null,--第二条运行的T-SQL指令?? --?? @command3?? nvarchar(2000)?? =?? null,--第三条运行的T-SQL指令?? --?? @whereand?? nvarchar(2000)?? =?? null,--可选条件来选择表?? --?? @precommand?? nvarchar(2000)?? =?? null,--在表前执行的指令?? --?? @postcommand?? nvarchar(2000)?? =?? null --在表后执行的指令 --================================================================== ? create?? table?? #tb(表名 sysname,记录数?? int?? ,保留空间?? varchar(10),使用空间?? varchar(10)?? ,索引使用空间?? varchar(10),未用空间?? varchar(10))?? ??? insert?? into?? #tb?? exec?? sp_MSForEachTable?? 'EXEC sp_spaceused?? ''?'''?? ??? select?? *?? from?? #tb??
go??
drop?? table?? #tb??
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|