123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- 修改字段名:alter table tab_info rename column createname to thisname;
- 修改字段属性:alter table tab_info alter column thisname varchar(200) not null;
- 修改默认值 :alter table tabinfo add constraint df default('嘿嘿') for thisname;
- //删除字段 alter table fdi_news drop c_author nvarchar(50)
- -------------------------------------------------------------------------------------------
- -- 从一个数据库的表复制内容到另一个数据库中
- insert into [lyfzdb].[dbo].[dindansp] select * from [lyfzdb].[dbo].[dindansp$]
- --设置数据库为单用户:
- ALTER DATABASE [dbname] SET SINGLE_USER
- --设置数据库为多用户:
- ALTER DATABASE [db] SET MULTI_USER
- backup database db to disk='D:db.bak'
- -- 假如数据库名:lyfzdb 检测数据库是否有错误,用DBCC checkdb('lyfzdb')
- DBCC CHECKDB('db')
- dbcc dbreindex('dindansp',' ')
- -- 假如数据表名:dindansp 检测数据表是否有错误,用DBCC checktable('dindansp')
- DBCC CHECKTABLE('dindan')
- -- 如果CHECKTABLE带参数,表示对表进行修复;
- -- 修复时,需要将数据库设置为单用户模式,修复完设置回多用户模式;
- -- 三个修复参数:
- -- repair_rebuild:最好的
- -- REPAIR_REBUILD:执行由 REPAIR_FAST 执行的所有修复,包括需要较长时间的修复(如重建索引)。执行这些修复时不会有丢失数据的危险。
- -- repair_fast
- -- REPAIR_FAST :仅为保持向后兼容性而保留。
- -- repair_allow_data_loss:这是最无奈的做法,用此参数恢复会丢失数据
- -- REPAIR_ALLOW_ DATA_LOSS :尝试修复报告的所有错误。这些修复可能会导致一些数据丢失
- ALTER DATABASE [lyfzdb] SET SINGLE_USER
- DBCC CHECKTABLE('dindansp',REPAIR_REBUILD)
- ALTER DATABASE [lyfzdb] SET MULTI_USER
- -- 把数据库设置为紧急状态。
- alter database [lyfzdb] set EMERGENCY --可以将数据库设置为紧急状态,此时数据库PVLink的图标改变成粉红色并出现“紧急”字样。
- alter database [lyfzdb] set ONLINE --把数据库从紧急状态变成在线状态。
- ------------------------------------------------------------------
- DBCC CHECKDB('lyfzdb')
- DBCC CHECKCATALOG('lyfzdb')
- DBCC CHECKTABLE ("MyTable");
- use lyfzdb
- DBCC CHECKCATALOG('dindansp2')
- MyTable的 DBCC 结果。
- 消息 8978,级别 16,状态 1,
- 第 1 行表错误: 对象 ID 2105058535,
- 索引 ID 1,分区 ID 72057594057129984,
- 分配单元 ID 72057594061717504 (类型为 In-row data)。
- 页 (1:4123189) 缺少上一页 (1:4124391) 对它的引用。
- 可能是因为链链接有问题。消息 2533,级别 16,状态 1,
- 第 1 行表错误: 看不到分配给对象 ID 2105058535,索引 ID 1,分区 ID 72057594057129984,
- 分配单元 ID 72057594061717504 (类型为 In-row data)的页 (1:4124391)。
- 该页可能无效,或者页头中可能包含错误的分配单元 ID。
- 消息 8976,级别 16,状态 1,
- 第 1 行表错误: 对象 ID 2105058535,
- 索引 ID 1,分区 ID 72057594057129984,分配单元 ID 72057594061717504 (类型为 In-row data)。
- 在扫描过程中未发现页 (1:4124391),但该页的父级 (1:5670805) 和上一页 (1:3416990) 都引用了它。
- 请检查以前的错误消息。对象 'MyTable' 的 90654 页中有 4290601 行。
- CHECKTABLE 在表 'MyTable' (对象 ID 2105058535)中发现 0 个分配错误和 3 个一致性错误。
- 对于由 DBCC CHECKTABLE (Test.dbo.MyTable)发现的错误,repair_allow_data_loss 是最低的修复级别。
- DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
- 网上找的修复方法为: (但是这种方法会造成数据丢失)
-
-
- use master
- declare @databasename varchar(255)
- set @databasename='lyfzdb'
- exec sp_dboption @databasename, N'single', N'true' --将目标数据库置为单用户状态
- dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)
- dbcc checkdb(@databasename,REPAIR_REBUILD)
- exec sp_dboption @databasename, N'single', N'false'--将目标数据库置为多用户状态
-
- use master
- declare @dbname varchar(255)
- set @dbname='lyfzdb'
- exec sp_dboption @dbname,'single user','true'
- dbcc checktable('需要修复的数据表的名称',REPAIR_ALLOW_DATA_LOSS)
- dbcc checktable('需要修复的数据表的名称',REPAIR_REBUILD)
- ------把’ 需要修复的数据表的名称’更改为执行DBCC CHECKDB时报错的数据表的名称
- exec sp_dboption @dbname,'single user','false'
|