SQLServer实践总结

1.如何收缩数据库?

下面的语句将vrveis数据库未使用的空间释放给操作系统

Dump transaction vrveis with no_log;

DBCC shrinkfile (vrveis_log,Truncateonly)

2.如何定时执行sql语句?

Waitfor time ‘hh:mm’ sql

3.如何连接远程服务器

第一步:链接服务器

Exec sp_addlinkedserver @server=myserver,@srvproduct=’’,@provider=’SQLOLEDB’, @datasrc=’dbtest’

第二步:登录

Exec sp_addlinkedsrvlogin ‘myserver’,’false’,null,’sa’,’sa’

4.sql技巧:

Ø 查看对象占用的空间:Sp_spaceused 对象名,true【false】,其中,true和false表示是否更正sysindexes表的不正确内容

Ø Object_id(’对象名’)--此函数得到对象的ID,例:select * from sysindexes where id=object_id(‘tablename’)

Ø Set nocount on[off](默认为Off):使返回的结果中不包含有关受sql语句影响的行数的信息。当为ON时,不返回计数信息;当为off时,返回计数信息。

5.sqlserver重要的系统表

表名

主要功能

存在的数据库

Sysobjects

主系统表,记录每个数据库对象的信息

每个数据库

Syscolumns

记录数据库的字段信息

Master,用户定义数据库

Sysindexes

记录数据库的索引信息

Master,用户定义数据库

Sysusers

记录数据库用户和角色信息

Master,用户定义数据库

Sysdepends

记录表、视图、存储过程的依赖关系信息

Master,用户定义数据库

Sysdatabases

系统数据库和用户定义数据库的信息

Master

Sysconstraints

记录数据库完整性约束信息

Master,用户定义数据库

6.游标的使用

--定义游标

Declare student_cursor CURSOR FOR

Select * from 学生表

--打开游标

OPEN student_cursor

--使用游标

FETCH NEXT FROM student_cursor

或FETCH student_cursor INTO @stu_id,@stu_name…

--使用系统函数FETCH_STATUS来判断游标数据是否读取完毕

While(@@FETCH_STATUS=0)

Begin

//SQL操作语句

FETCH student_cursor INTO @stu_id,@stu_name…

END

--关闭游标

CLOSE student_cursor

--释放游标

DEALLOCATE student_cursor

7.用SQL执行备份操作(文件名包含年月日)

Declare @bakdate char(8),

@dest varchar(100)

Set @bakdate=(selectdatename(year,getdate())+datename(month,getdate())+datename (day,getdate())

Set @dest=’F:\...’+@bakdate+’.dat’

Backup database file_dept to disk=@dest;

Go

8.用SQL生成自增列

Select num=(select sum(1) from daryxxb where dah<=a.dah),* from daryxxb a

9.修改数据库的逻辑文件名

Alter database dagl_web

Modify file(

Name=dagl_oracle_log,

Newname=dagl_Web_log)

Alter database dagl_web

Modify file(

Name=dagl_oracle_data,

Newname=dagl_Web_data)

10.数据库无法进行事务日志备份

SQLServer中,想对某数据库进行事务日志的备份,但却只能选择“数据库完全备份”和“数据库差异备份”其它的两种都不能选;可用如下语句解决:

exec sp_dboption 'dbname','trunc','false'
go


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值