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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |