09年必会的十大SQL Server开发技巧
本文为SQL Server数据库开发人员的十大开发技巧的总结。如果在工作过程中他们对这些技巧不熟悉、不了解,就会大大影响工作兴趣。本专题中的话题包括日期/时间数据类型转换和字符数据类型之间的互相转换、SQL Server2005中操作DATETIME和SMALLDATETIME以及用存储程序查找SQL Server表大小或用XQuery检索XML数值等等。
目录:
-
>1、SQL Server中日期/时间值到字符类型的数据转换
本文将介绍Transat-SQL支持的两种内置、从时间/日期数据数据和字符数据相互转换的方法:隐式转换和显式转换。本文将向你逐步介绍每种方法的使用方法。在本文中专家还提出了在转换日期/时间值时如何用到CAST和CONVERT函数的建议。
-
>2、SQL Server 2005的DATETIME和SMALLDATETIME基础
了解SQL Server中的DATETIME、SMALLDATETIME和TIMESTAMP数据类型通常不是一个很直接的过程。另外,你还能在文中了解数据是如何存储在DATETIME和SMALLDATETIME中的、为什么TIMESTAMP会和这两种日期/时间数据类型不同但又经常与两种主要的日期/时间数据类型相混淆。
-
>3、用存储过程查询SQL Server表和其它对象大小
介绍数据库中用户表大小的概况、10个最大的索引对象,这是计算SQL Server中某个对象特定的磁盘空间的重要理由。Sp_SOS这一存储程序可以代替不合适的sp_spaceused存储程序。Sp_spaceused是随SQL Server发布的一个存储过程,它用来显示SQL Server对象所占用的硬盘空间。但是我们往往发现它并不能满足要求。比如,当我想要查看一个特定的SQL Server数据库的用户表大小概况时,或者希望看一下前10个最大的索引对象,或者需要计算一组表所占用的空间总大小时,sp_spaceused并不能做到……
-
>4、正确使用SQL Server的datetime函数:GETDATE、DATENAME和DATEPART
Transact-SQL包含一组函数可以用于检索当前的日期和时间或一个DATETIME或SMALLDATETIME值的某个部分。比如你可以在DATETIME值中提取日、月或年以及季度、周、小时甚至毫秒。在本文中,我们将学习对这些函数进行阐述并举例说明如何使用SQL Server中的这些函数来查询数据的方法。
-
>5、在SQL Server 2005中使用XQuery检索XML数据
XQuery是一个功能强大的、专门为存取XML数据而设计的脚本语言。SQL Server2005支持一个允许在XML列、变量或参数中存取值的XQuery语言子集。通过调用XML数据类型支持的方法,就可以在Transact-SQL语句中使用XQuery。其中两种方法分别是value()和query()——这对于在XML数据中检索指定的元素是特别有用的。本文将阐述这两种方法并分别举例说明。
-
>6、SQL Server 2000中监控长期运行任务的存储过程
在SQL Server 2000中监控长期运行的任务不是一项简单的任务,但是它是DBA的一项最佳实践。本文主要介绍发现易于识别长期运行任务的存储过程的方法,并且它还能通过电子邮件的方式提醒DBA环境可能会对SQL Server性能造成一定程度的影响。
-
>7、在SQL Server 2005中创建DDL表格来审计DDL触发活动
在SQL Server 2005之前,我们只能定义Data Manipulation Language (DML)触发器。当执行DML语句时,如UPDATE或DALETE,这些触发器就会启动。在SQL Server 2005发布之后,现在可以定义Data Definition Language (DDL)触发器了。当执行DDL语句,如CREATE TABLE和ALTER VIEW,这些类型的触发器就会启动,并且这使得使用DDL触发器来审计SQL Server中的DDL事件更加容易了。
-
>8、使用DATEADD和DATEDIFF来计算SQL Server的DATETIME值
在SQL Server数据库中,DATETIME和SMALLDATETIME值是以整数存储的。然而,与整数不同的是,它们不能直接地进行数学运算。尽管如此,有时候还是需要在日期/时间值中添加或减去一个时间间隔。比如,你可能想在一值上加一些月数或天数,或者甚至可能是小时数。你甚至可能想比较两个日期/时间值以便确定它们之间的时间间隔,如相差的天数或年数。为了简化这些类型的计算,Transact-SQL支持两个重要的日期/时间方法:DATEADD和DATEDIFF。
-
>9、配置SQL Server服务代理来发送存储过程数据
在SQL Server 2005中,Microsoft引进了一个令人振奋的新特性即服务代理(Service Broker),同时这也给许多数据库管理人员带来了一个新的概念……
-
>10、用SQL Server 2005 CTE简化查询
SQL Server 2005引进了一个很有价值的新的Transact-SQL语言组件:通用表表达式(Common Table Expression,CTE),它是派生表和视图的一个便捷的替代。通过使用CTE,我们可以创建一个命名结果集来在SELECT、INSERT、UPDATE和DELETE语句中引用,而无须保存结果集结构的任何元数据。在本文中,作者将阐述如何在SQL Server 2005中创建CTE——包括如何使用CTE来创建一个递归查询——并举几个例子来说明它们是如何使用的。注意,本文中所有例子都使用SQL Server 2005的AdventureWorks示例数据库。