随笔分类 -  SQL

摘要:1.在生产环境中不要出现Select * 这一点我想大家已经是比较熟知了,这样的错误相信会犯的人不会太多。但我这里还是要说一下。 不使用Select *的原因主要不是坊间所流传的将*解析成具体的列需要产生消耗,这点消耗在我看来完全可以忽略不计。更主要的原因来自以下两点: 扩展方面的问题 造成额外的书签查找或是由查找变为扫描 扩展方面的问题是当表中添加一个列时,Select *会把这一列也囊括进去,从而造成上面的第二种问题。 而额外的IO这点显而易见,当查找不需要的列时自然会产生不必要的IO,下面我们通过一个非常简单的例子来比较这两种差别,如图1所示。 图1.*带来的不必要的IO2.声明变量时指 阅读全文
posted @ 2012-12-12 21:53 星火卓越 阅读(154) 评论(0) 推荐(0)
摘要:简介 加密是指通过使用密钥或密码对数据进行模糊处理的过程。在SQL Server中,加密并不能替代其他的安全设置,比如防止未被授权的人访问数据库或是数据库实例所在的Windows系统,甚至是数据库所在的机房,而是作为当数据库被破解或是备份被窃取后的最后一道防线。通过加密,使得未被授权的人在没有密钥或密码的情况下所窃取的数据变得毫无意义。这种做法不仅仅是为了你的数据安全,有时甚至是法律所要求的(像国内某知名IT网站泄漏密码这种事在中国可以道歉后不负任何责任了事,在米国妥妥的要破产清算)。SQL Server中的加密简介 在SQL Server2000和以前的版本,是不支持加密的。所有的加密操作都 阅读全文
posted @ 2012-12-12 21:21 星火卓越 阅读(218) 评论(0) 推荐(0)
摘要:包括安装时提示有挂起的操作、收缩数据库、压缩数据库、转移数据库给新用户以已存在用户权限、检查备份集、修复数据库等 (一)挂起操作 在安装Sql或sp补丁的时候系统提示之前有挂起的安装操作,要求重启,这里往往重启无用,解决办法: 到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager 删除PendingFileRenameOperations (二)收缩数据库 --重建索引 DBCC REINDEX DBCC INDEXDEFRAG --收缩数据和日志 DBCC SHRINKDB DBCC SHRINKFILE ( 阅读全文
posted @ 2012-11-22 14:51 星火卓越 阅读(226) 评论(0) 推荐(0)
摘要:一.简要介绍:系统存储过程sp_MSforeachtable和sp_MSforeachdb,是微软提供的两个不公开的存储过程。从mssql6.5开始,存放在SQL Server的MASTER数据库中。可以用来对某个数据库的所有表或某个SQL服务器上的所有数据库进行管理,下面将对此进行详细介绍。作为数据库管理者或开发者等经常会检查整个数据库或用户表。如:检查整个数据库的容量,看指定数据库所有用户表的容量,所有表的记录数等等,我们一般处理这样的问题都是通过游标来达到要求。如果我们用sp_MSforeachtable就可以非常方便的达到相同的目的,如:sql查询所有用户表的列表,详细信息,如:记录数 阅读全文
posted @ 2012-11-12 21:16 星火卓越 阅读(332) 评论(0) 推荐(1)
摘要:本文分为以下六个部分:基础部分提升部分技巧部分数据开发-经典部分SQL Server基本函数部分常识部分一、基础1、说明:创建数据库CREATE DATABASE database-name 2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'--- 开始备份BACKUP DATABASE pubs TO t 阅读全文
posted @ 2012-11-12 21:11 星火卓越 阅读(231) 评论(0) 推荐(0)
摘要:create function fun(@child varchar(20)) returns varchar(20) as begin declare @s varchar(20) select @s= ' ' while exists(select 1 from test where id=@child and parentid <> 0) begin select @child=parentid from test where id=@child select @s=@s+ '- '+cName from test where @child=p 阅读全文
posted @ 2012-11-11 22:19 星火卓越 阅读(589) 评论(0) 推荐(0)
摘要:select len('中英文abc') ---结果是6select datalength('中英文abc') ---结果是9select cast('中英文abc' as char(5)) ---结果是“中英”,会自动避免半个汉字出现select cast('中英文abc' as char(7)) ---结果是“中英文a”,可有效的截取中英文 阅读全文
posted @ 2012-11-11 14:01 星火卓越 阅读(407) 评论(0) 推荐(0)
摘要:SELECT DB_NAME(database_id) AS [Database Name], [Name] AS [Logical Name], [Physical_Name] AS [Physical Name], ((size * 8) / 1024) AS [Size(MB)], [differential_base_time] AS [Differential Base Time]FROM sys.master_filesWHERE DB_NAME(database_id) IN('ShengShiDB') 阅读全文
posted @ 2012-10-28 03:12 星火卓越 阅读(169) 评论(0) 推荐(0)
摘要:select b.[name] 表名,max(a.rowcnt) 记录数from sysindexes ajoin sys.objects b on b.object_id=a.idwhere b.type='U'group by b.[name] 阅读全文
posted @ 2012-08-09 16:00 星火卓越 阅读(294) 评论(0) 推荐(0)
摘要:在网络上搜索相关的很多资料,总结了一下,发生这种情况的原因主要是由于排序规则引起的:不指定排序规则的话 临时表是否区分大小写,与tempdb数据库的排序有关. 数据库对象是否区分大小写,与数据库本身的排序规则有关. 变量是否区分大小写,与数据库本身的排序规则有关,估计也是与tempdb数据库有关吧. 二进制编码:根据针对每个字符定义的位模式来排序与比较Microsoft&reg;SQL Server™资料表中的资料。 Binary排序方式区分大小写,亦即小写比大写优先,且区分腔调字。这是最快的排序方式。若未选取此选项,SQL Server将遵循关联之语言或字母的字典内定义的排序与... 阅读全文
posted @ 2012-07-10 09:35 星火卓越 阅读(595) 评论(0) 推荐(0)
摘要:SELECT (650+FLOOR(RAND()*(830-650+1)))/100 阅读全文
posted @ 2012-07-04 13:10 星火卓越 阅读(138) 评论(0) 推荐(0)
摘要:select *from Pass_Head phleft ( select distinct P_PASS_NO FROM PASS_HEAD WHERE STATUS!=7) ph2 on ph2.P_PASS_NO=ph.PASS_NOWHERE ph2.P_PASS_NO IS NULL 阅读全文
posted @ 2012-06-19 11:18 星火卓越 阅读(413) 评论(0) 推荐(0)
摘要:SELECT CONVERT(VARCHAR(100), GETDATE(), 0) 03 6 2010 4:19PM SELECT CONVERT(VARCHAR(100), GETDATE(), 1) 03/06/10 SELECT CONVERT(VARCHAR(100), GETDATE(), 2) 10.03.06 SELECT CONVERT(VARCHAR(100), GETDATE(), 3) 06/03/10 SELECT CONVERT(VARCHAR(100), GETDATE(), 4) 06.03.10 SELECT CONVERT(VARCHAR(100), GET 阅读全文
posted @ 2012-06-07 15:19 星火卓越 阅读(209) 评论(0) 推荐(0)
摘要:大家都知道SQL Server触发器分为DDL、DML和登录触发器。其中DML触发器对于一个表来说,又可分为Insert、Update、Delete三种触发器。也许触发器的功能作用大家都清楚了,可是大家知道当批量Update或者批量Delete数据的时候,触发器如何工作吗?在这种情况下,触发器不是逐条触发的(也就是说不是删除一条记录的同时,触发器开始工作一次),而是当批量数据操作完成后,只触发一次。但这次触发的数据是整个批量数据,而不是逐条数据。一段trigger codes例子:插入、删除和更新的触发器代码:Code highlighting produced by Actipro Code 阅读全文
posted @ 2012-05-31 20:54 星火卓越 阅读(2066) 评论(0) 推荐(0)
摘要:exec xp_fixeddrivesexec sp_helpdb 'WodiOffice' 阅读全文
posted @ 2012-05-25 16:26 星火卓越 阅读(140) 评论(0) 推荐(0)
只有注册用户登录后才能阅读该文。
posted @ 2012-03-28 16:42 星火卓越
只有注册用户登录后才能阅读该文。
posted @ 2012-03-01 19:56 星火卓越
只有注册用户登录后才能阅读该文。
posted @ 2012-01-12 01:12 星火卓越
只有注册用户登录后才能阅读该文。
posted @ 2012-01-11 20:46 星火卓越
只有注册用户登录后才能阅读该文。
posted @ 2012-01-01 00:37 星火卓越