随笔分类 -  SQL SERVER

索引 Index
摘要:一、深入浅出理解索引结构 实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别: 其实,我们的汉语字典的正文本身就是一个聚集索引。比如,我们要查“安”字,就会很自然地翻开字典的前几页,因为“安”的拼音是“an”,而按照拼音排序汉字的字典是以英文字母“a”开头并以“z”结尾的,那么“安”字就自然地排在字典的前部。如果您翻完了所有以“a”开头的部分仍然找不到这个字,那么就 阅读全文

posted @ 2007-03-18 23:10 木木凡 阅读(236) 评论(0) 推荐(0)

获取MS SQL库数据字典
摘要:SELECTsysobjects.nameAS[table],sysproperties.[value]AS表说明,syscolumns.nameASfield,properties.[value]AS字段说明,systypes.nameAStype,syscolumns.length,ISNULL(COLUMNPROPERTY(syscolumns.id,syscolumns.name,'Scale'),0)AS小数位数,syscolumns.isnullableASisnull,CASEWHENsyscomments.textISNULLTHEN''ELSE 阅读全文

posted @ 2007-01-29 14:01 木木凡 阅读(137) 评论(0) 推荐(0)

SQL中简单补位函数的应用
摘要:判断一个数字长度是否为二位字,如果不是则将一位数字变为二位数字如数据库内数值为“9”,在读取时通过函数变为“09”其SQL代码如下:create function fn_chg2(@p varchar(2))returns varchar(2)asbegin if len(@p)<2 begin set @p='0'+@p end return @pend 阅读全文

posted @ 2005-02-22 14:05 木木凡 阅读(589) 评论(0) 推荐(0)

关于使用存储过程创建分页
摘要:今天查询有关sql server 索引的资料 无意在一篇文章的末尾发现一个关于使用存储过程创建分页的代码,直接复制到查询分析器里有误,整理调试了一个,搬上来一起学习一下。 注:原作者 freedk 以下为笔者整理 这是一个相对最优的方法在大量数据集中表现突出 建立一个 Web 应用,分页浏览功能必不可少。这个问题是数据库处理中十分常见的问题。经典的数据分页方法是:ADO 纪录集分页法,也就是利用ADO自带的分页功能(利用游标)来实现分页。但这种分页方法仅适用于较小数据量的情形,因为游标本身有缺点:游标是存放在内存中,很费内存。游标一建立,就将相关的记录锁住,直到取消游标。游标提供了对特定集合. 阅读全文

posted @ 2005-02-06 20:59 木木凡 阅读(116) 评论(0) 推荐(0)

SQL Server日期计算(转载)
摘要:通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分割(年、月、日等),然后仅仅用分割出来的年、月、日等放在几个函数中计算出自己所需要的日期!在这篇文章里,我将告诉你如何使用DATEADD和DATEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期。 在使用本文中的例子之前,你必须注意以下的问题。大部分可能不是所有例子在不同的机器上执行的结果可能不一样,这完全由哪一天是一个星期的第一天这个设置决定。第一天(DATEFIRST)设定决定了你的系统使用哪一天作为一周的第一天。所有以下的例子都是以星期天作为 阅读全文

posted @ 2005-02-06 20:48 木木凡 阅读(141) 评论(0) 推荐(0)

海量数据库的查询优化及分页算法方案
摘要:随着“金盾工程”建设的逐步深入和公安信息化的高速发展,公安计算机应用系统被广泛应用在各警种、各部门。与此同时,应用系统体系的核心、系统数据的存放地――数据库也随着实际应用而急剧膨胀,一些大规模的系统,如人口系统的数据甚至超过了1000万条,可谓海量。那么,如何实现快速地从这些超大容量的数据库中提取数据(查询)、分析、统计以及提取数据后进行数据分页已成为各地系统管理员和数据库管理员亟待解决的难题。在以下的文章中,我将以“办公自动化”系统为例,探讨如何在有着1000万条数据的MS SQL SERVER数据库中实现快速的数据提取和数据分页。以下代码说明了我们实例中数据库的“红头文件”一表的部分数据结 阅读全文

posted @ 2005-01-21 11:09 木木凡 阅读(137) 评论(0) 推荐(0)

有行统计项和列统计项的行列转换,以及EXCEL导入SQL的简单应用
摘要:if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[单元]') and OBJECTPROPERTY(id, N'IsTable') = 1)drop table [dbo].[单元]if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[统计]') and OBJECTPROPERTY(id, N'IsTable') = 1)drop table [dbo]. 阅读全文

posted @ 2004-11-29 17:06 木木凡 阅读(444) 评论(0) 推荐(0)

生成交叉表的简单通用存储过程
摘要:if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_qry]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop procedure [dbo].[p_qry]GO/*--生成交叉表的简单通用存储过程根据指定的表名,纵横字段,统计字段,自动生成交叉表并可根据需要生成纵横两个方向的合计注意,横向字段数目如果大于纵向字段数目,将自动交换纵横字段如果不要此功能,则去掉交换处理部分--邹建 204.06--*//*--调用示例exe 阅读全文

posted @ 2004-11-29 14:57 木木凡 阅读(141) 评论(0) 推荐(0)

如何用命令生成SQL SERVER脚本
摘要:--以下生成整个数据库的SQL脚本,相当好用。--(scptxfr.exe的路径要正确,在安装目录下)declare @cMd varchar(1000)set @cmd = 'master.dbo.xp_cmdshell ' + '''c:\"Microsoft ' +'SQL Server"' +'\MSSQL\Upgrade\scptxfr.exe ' +' /s YourServerName /p YourSAPassword /I /d YourDBName /f ' 阅读全文

posted @ 2004-11-26 15:29 木木凡 阅读(572) 评论(0) 推荐(0)

交叉表应用一 (报表动态表头)
摘要:set nocount on--建表create table 课程表(id int, 课程 nvarchar(10),专业 varchar(8))insert into 课程表select 1, '课程1' ,'专业1' union all select 2 , '课程2','专业1'union all select 3 , '课程3' ,'专业1' create table 成绩表(学号 nvarchar(10),K1 int,K2 int,K3 int,专业 varchar(8))insert 阅读全文

posted @ 2004-11-11 11:07 木木凡 阅读(237) 评论(0) 推荐(0)

导航