重置自增字段
truncate table tablename ----- 删除原表数据,并重置自增列
DBCC CHECKIDENT (tablename,reseed,0) --重置表的自增字段,保留数据
开关自增字段
SET IDENTITY_INSERT TableNameON INSERT INTO语句
SET IDENTITY_INSERT TableName OFF
查询或删除相同前缀的表
SELECTnameFROMSysObjectsWhereXType='U'andnamelike'DB_D_MacroDB_Y_C%' SELECTnameFROMSysObjectsWhereXType='U'andnamelike'DB_D_IndustryDB_Y_C%'
SELECTnameFROMSysObjectsWhereXType='U'andnamelike'DB_D_MacroDB_M_C%' SELECTnameFROMSysObjectsWhereXType='U'andnamelike'DB_D_IndustryDB_M_C%'
DECLARE@TableNVARCHAR(30) DECLAREtmpCurCURSORFOR
SELECTnameFROMsys.objectsWHERETYPE='U'ANDnamelike'DB_D_IndustryDB_M_C%'
OPENtmpCur
FETCHNEXTFROMtmpCurINTO@Table
WHILE@@FETCH_STATUS= 0 BEGIN
DECLARE@sqlVARCHAR(100)
SELECT@sql='drop table '+@Table EXEC(@sql)
FETCHNEXTFROMtmpCurINTO@Table END
CLOSEtmpCur DEALLOCATEtmpCur
数据库单用户多用户设置
设置数据库为单用户:
? ALTER DATABASE [dbname] SET SINGLE_USER
? 右键点击数据库 ->属性 ->选项 ->状态 ->限制访问 ->选择Single->确定。 设置数据库为多用户:
? ALTER DATABASE [dbname] SET MULTI_USER
? 右键点击数据库 ->属性 ->选项 ->状态 ->限制访问 ->选择Multiple ->确定。
尝试在数据库*中提取逻辑页失败
1. DBCC CHECKDB
启服务器后,在没有进行任何操作的情况下,在SQL查询分析器中执行以下SQL进行数据库的修复,修复数据库存在的一致性错误与分配错误。 Sql代码: use master
declare @databasenamevarchar(255)
set @databasename='需要修复的数据库名称'
exec sp_dboption @databasename, N'single', N'true' --将目标数据库置为单用户状态 dbcccheckdb(@databasename,REPAIR_ALLOW_DATA_LOSS) dbcccheckdb(@databasename,REPAIR_REBUILD)
exec sp_dboption @databasename, N'single', N'false'--将目标数据库置为多用户状态 然后执行 DBCC CHECKDB('需要修复的数据库名称') 检查数据库是否仍旧存在错误。 注意:修复后可能会造成部分数据的丢失。 2. DBCC CHECKTABLE
如果DBCC CHECKDB 检查仍旧存在错误,可以使用DBCC CHECKTABLE来修复。 Sql代码:
use 需要修复的数据库名称 declare @dbnamevarchar(255)
set @dbname='需要修复的数据库的名称' execsp_dboption @dbname,'single user','true'
dbccchecktable('需要修复的数据表的名称',REPAIR_ALLOW_DATA_LOSS) dbccchecktable('需要修复的数据表的名称',REPAIR_REBUILD)
需要修复的数据表的名称:执行DBCC CHECKDB时报错的数据表的名称 execsp_dboption @dbname,'single user','false'
3. 其他的一些常用的修复命令
DBCC DBREINDEX 重建指定数据库中表的一个或多个索引 Sql代码:
DBCC DBREINDEX (表名,’’) 修复此表所有的索引。 4.DBCC CHECKALLOC
检查指定数据库的磁盘空间分配结构的一致性
sqlserver中文件组Filegroup的使用
数据库的操作:
1. 对数据文件的操作(添加,删除,修改文件的初始大小,最大大小,步长) 2. 数据库文件的收缩
3. 数据库的只读/读写read_only只读read_write可读写read_only表示只读read_write表示可读可写
4. 数据库的限制访问(单用户,多用户,限制用户模式)
5.数据库脱机/联机 offline 脱机 alter database love set offline online 联机 alter database love set online
6. 数据库附加/分离。sp_attach_db附加SP_detach_db分离附加sp_attach_db分离sp_detach_db offline 脱机 online 联机
文件组:
文件组:对数据文件的管理单元,即文件的集合、
文件组的优势: 1. 对文件的管理,分类管理(将所有存放财务的数据放在一个文件组中,也可以所有关于人事的数据放在一个文件组).
2. 文件组增加数据读写的速度。 特点:
1. 一个数据库至少一个文件组,当数据库创建成功后,将自动创建文件组(primary文件组). 2. 文件组只能存放数据文件(mdf,ndf),ldf文件不能放入到文件组中. 3. 一旦文件加入到文件组,不能切换文件组了。
文件组的类型: 1. 主文件组
无法删除,primary 文件组,统创建的,放两种类型的文件,数据库mdf文件,存放没有单独指定文件组的文件,在添加ndf文件时,如果没有指定文件组,文件默认存放的文件组. 据库中文件必须放在文件组中。因为:数据库---文件组--文件。 2. 用户自定义文件组
用户创建的,当添加ndf文件时,明确指定文件组的文件,可以删除。 文件组是一个或多个文件的集合,是构成分配和数据管理的单个逻辑单元(是sqlserver中对多个物理数据文件的管理单位)。
Sql服务器包括主文件组(系统自动创建的)和其他用户自定义的文件组
主文件组包括系统表的主数据文件(primary),他包括所有数据库中的系统表,以及所有没有在用户自定义的文件组中所指定的对象和数据, 一个数据库只有一个主文件组 用户自定义文件组包括出于分配和管理目的而分组的数据文件(ndf) 事务日志文件不能存放在任意一个文件组中
文件组允许对文件进行分组,以便于管理和数据的分配/放置。例如,可以分别在三个硬盘驱动器上创建三个文件(Data1.ndf、Data2.ndf 和 Data3.ndf),并将这三个文件指派到文件组 fgroup1 中。然后,可以明确地在文件组 fgroup1 上创建一个表。对表中数据的查询将分散到三个磁盘上,因而性能得以提高。
如果文件组是由在不同物理磁盘中展开的多个文件组成,而且每个磁盘都有自己的磁盘控制器,则对表中数据的查询将在这些磁盘中展开,从而提高查询性能
问题:
1. 如何查看数据库中所有的文件组。 语法:sp_helpfilegroup 步骤:
use 数据库 sp_helpfilegroup
2. 如何找到文件组和文件的对应情况. sp_helpdb love
创建文件组。 语法:
alter database 数据库名 add filegroup文件组名 步骤:
use 数据库名
alter database 数据库名 add filegroup文件组名 范例: use love
alter database love add filegroup财务部
将文件放入到文件组中
语法:
alter database 数据库名 add file(name='xxx',filename='文件的物理路径',
size='初始大小',maxsize=\最大大小',filegrowth=步长) --添加文件,并且将文件放入到默认文件组(primary文件组) alter database love add file
(name='love_n1',filename='c:love_n1.ndf')
alter database 数据库名 add file(name='xxx',filename='文件的物理路径', size='初始大小',maxsize=\最大大小',filegrowth=步长) to filegroup文件组名
alter database love add file
(name='love_n2',filename='c:love_n2.ndf') to filegroup财务部
数据-->primary-->love文件和love_n1 数据-->财务部-->love_n2
3.数据如何放入到文件组中
数据库中利用表保存和处理数据 数据--表-->文件组--数据文件
指定表和文件组的关系 语法:
create table 表名(xxxxxx) on 文件组 步骤:
use 数据库
create table语法 on 表名 范例:
create table renshi(id int not null,
namevarchar(50) not null, salary money not null) on 财务部
1. 创建数据库(nnn),如果存在,先删除,再创建. 2. 向数据库nnn添加文件组(f1)
3. 向数据库nnn添加文件,并且放在f1中。 4. 查询文件组f1中的文件情况. 5. 创建表,并制定放置f1中。 6. 查询表和文件组的关系。 范例:
create database nnn usennn

