扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:唐云武 来源:赛迪网技术社区 2007年8月31日
关键字: 实用技巧 SQL Server SQL Server 各版本 数据库
10.SQL SERVER中直接循环写入数据
|
11.无数据库日志文件恢复数据库方法两则
数据库日志文件的误删或别的原因引起数据库日志的损坏:
方法一:
1.新建一个同名的数据库;
2.再停掉SQL Server(注意不要分离数据库);
3.用原数据库的数据文件覆盖掉这个新建的数据库;
4.再重启SQL Server;
5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名);
6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用数据库的脚本创建一个新的数据库,并将数据导进去就行了。
|
方法二:
1、设置数据库为紧急模式;
2、停掉SQL Server服务;
3、把应用数据库的数据文件XXX_Data.mdf移走;
4、重新建立一个同名的数据库XXX;
5、停掉SQL服务;
6、把原来的数据文件再覆盖回来;
7、运行以下语句,把该数据库设置为紧急模式;
8、运行。
|
执行结果:
DBCC 执行完毕。(如果 DBCC 输出了错误信息,请与系统管理员联系。)已将配置选项 'allow updates' 从 0 改为 1。请运行 RECONFIGURE 语句以安装,接着运行“update sysdatabases set status = 32768 where name = 'XXX'”。
执行结果:
重启SQL Server服务;运行以下语句,把应用数据库设置为Single User模式;运行“sp_dboption 'XXX', 'single user', 'true'”。
执行结果:
命令已成功完成;做DBCC CHECKDB;运行“DBCC CHECKDB('XXX')”。
执行结果:
'XXX' 的 DBCC 结果;'sysobjects' 的 DBCC 结果;对象 'sysobjects' 有 273 行,这些行位于 5 页中;'sysindexes' 的 DBCC 结果;对象 'sysindexes' 有 202 行,这些行位于 7 页中;'syscolumns' 的 DBCC 结果。
运行以下语句把系统表的修改选项关掉,运行“sp_resetstatus "XXX":
|
执行结果:
在 sysdatabases 中更新数据库 'XXX' 的条目之前,模式 = 0,状态 = 28(状态 suspect_bit = 0),没有更新 sysdatabases 中的任何行,因为已正确地重置了模式和状态。没有错误,未进行任何更改。
DBCC 执行完毕。(如果 DBCC 输出了错误信息,请与系统管理员联系。)已将配置选项 'allow updates' 从 1 改为 0。请运行 RECONFIGURE 语句以安装;重新建立另外一个数据库XXX.Lost。
DTS导出向导:
运行DTS导出向导;复制源选择EmergencyMode的数据库XXX,导入到XXX.Lost,选择“在SQL Server数据库之间复制对象和数据”,试了多次,好像不行,只是复制过来了所有表结构,但是没有数据,也没有视图和存储过程,而且DTS向导最后报告复制失败;所以最后选择“从源数据库复制表和视图”,但是后来发现,这样总是只能复制一部分表记录;于是选择“用一条查询指定要传输的数据”,缺哪个表记录,就导哪个;视图和存储过程是执行SQL语句添加的。
12.维护Sql Server中表的索引
在使用和创建数据库索引中经常会碰到一些问题,在这里可以采用一些另类的方法解决:
第一步:查看是否需要维护,查看扫描密度/Scan Density是否为100%:
|
第二步:重构表索引:
|
重做第一步,如发现扫描密度/Scan Density还是小于100%则重构表的所有索引:
|
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者