SQLServer命令汇集(不断更新)

来源:互联网 发布:剑网捏脸数据 编辑:程序博客网 时间:2024/05/22 00:14

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