修改字段名: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'