科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道SQL Server 数据库操作实用技巧锦集(4)

SQL Server 数据库操作实用技巧锦集(4)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文主要概括安装时提示有挂起的操作、收缩数据库、压缩数据库、转移数据库给新用户以已存在用户权限、检查备份集、修复数据库等操作技巧。

作者:唐云武 来源:赛迪网技术社区 2007年8月31日

关键字: 实用技巧 SQL Server SQL Server 各版本 数据库

  • 评论
  • 分享微博
  • 分享邮件

10.SQL SERVER中直接循环写入数据

declare @i int
set @i=1
while @i<30
begin
insert into test (userid) values(@i)
set @i=@i+1
end

11.无数据库日志文件恢复数据库方法两则

数据库日志文件的误删或别的原因引起数据库日志的损坏:

方法一:

1.新建一个同名的数据库;

2.再停掉SQL Server(注意不要分离数据库);

3.用原数据库的数据文件覆盖掉这个新建的数据库;

4.再重启SQL Server;

5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名);

6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用数据库的脚本创建一个新的数据库,并将数据导进去就行了。

USE MASTER
GO

SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
GO

UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='置疑的数据库名'
Go

sp_dboption '置疑的数据库名', 'single user', 'true'
Go

DBCC CHECKDB('置疑的数据库名') 
Go

update sysdatabases set status =28 where name='置疑的数据库名'
Go

sp_configure 'allow updates', 0 reconfigure with override
Go 

sp_dboption '置疑的数据库名', 'single user', 'false'
Go

方法二:

1、设置数据库为紧急模式;

2、停掉SQL Server服务;

3、把应用数据库的数据文件XXX_Data.mdf移走;

4、重新建立一个同名的数据库XXX;

5、停掉SQL服务;

6、把原来的数据文件再覆盖回来;

7、运行以下语句,把该数据库设置为紧急模式;

8、运行。

“Use Master

Go

sp_configure 'allow updates', 1

reconfigure with override

Go”

执行结果:

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":

go

sp_configure 'allow updates', 0

reconfigure with override

Go”

执行结果:

在 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%:

declare @table_id int
set @table_id=object_id('表名')
dbcc showcontig(@table_id)

第二步:重构表索引:

dbcc dbreindex('表名',pk_索引名,100)

重做第一步,如发现扫描密度/Scan Density还是小于100%则重构表的所有索引:

dbcc dbreindex('表名','',100)
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章