摘要: Transact-SQL 代码中的错误可使用 TRY…CATCH 构造处理,此功能类似于C#语言的异常处理功能。TRY…CATCH 构造包括两部分:一个 TRY 块和一个 CATCH 块1.TRY...CATCH 块不处理导致数据库引擎关闭连接的严重性为 20 或更高的错误。但是,只要连接不关闭,TRY...CATCH 就会处理严重性为 20 或更高的错误。2.严重性为 10 或更低的错误被视为警告或信息性消息,TRY...CATCH 块不处理此类错误。对于与TRY...CATCH 构造在同一执行级别发生的错误,TRY...CATCH 将不处理以下两类错误:1.编译错误,例如阻止批处理执行的语 阅读全文
posted @ 2011-03-02 13:15 cpcpc 阅读(240) 评论(0) 推荐(0)
摘要: sql server2005新增加了2大数据类型:1.大值数据类型2.xml1.大值数据类型Microsoft SQL Server 2005 中引入了 max 说明符。此说明符增强了 varchar、nvarchar 和 varbinary 数据类型的存储能力。varchar(max)、nvarchar(max) 和 varbinary(max) 统称为大值数据类型。您可以使用大值数据类型来存储最大为 2^31-1 个字节的数据。大值数据类型和 SQL Server 早期版本中与之对应的数据类型之间的关系:varchar(max) textnvarchar(max) ntextvarbina 阅读全文
posted @ 2011-03-02 13:12 cpcpc 阅读(267) 评论(0) 推荐(0)
摘要: TOP 运算符介绍:TOP 运算符在Sql Server2005得到了增强,可以使用任何数值表达式(如变量名),而不是仅使用整数来指定该运算符返回的行数。TOP 现在还可以在 INSERT、UPDATE 和 DELETE 语句中指定。TOP 运算符的几个使用总结:1.TOP 表达式可用在 SELECT、INSERT、UPDATE 和 DELETE 语句中。2.Top表达式可以是常量,变量,子查询3.取代set rowcount,可以防止锁升级,提高效率特别提示:与INSERT、UPDATE 或 DELETE 一起使用的 TOP 表达式中被引用行将不按任何顺序排列。TOP n 随机返回 n 行。 阅读全文
posted @ 2011-03-02 13:08 cpcpc 阅读(318) 评论(0) 推荐(0)
摘要: 公用表表达式是Sql Server2005新增加的一个非常好用的功能。公用表表达式 (CTE) 可以认为是在单个 SELECT、INSERT、UPDATE、DELETE 或 CREATE VIEW 语句的执行范围内定义的临时结果集。CTE 与派生表类似,具体表现在不存储为对象,并且只在查询期间有效。与派生表的不同之处在于,CTE 可自引用,还可在同一查询中引用多次。CTE可用于: 1.创建递归查询(我个人认为CTE最好用的地方)2.在同一语句中多次引用生成的表CTE优点:使用 CTE 可以获得提高可读性和轻松维护复杂查询的优点。查询可以分为单独块、简单块、逻辑生成块。之后,这些简单块可用于生成 阅读全文
posted @ 2011-03-02 13:02 cpcpc 阅读(217) 评论(0) 推荐(0)
摘要: APPLY 运算符简介: APPLY 运算符是Sql Server2005新增加的运算符。使用APPLY运算符可以为实现查询操作的外部表表达式返回的每个行调用表值函数。表值函数作为右输入,外部表表达式作为左输入。通过对右输入求值来获得左输入每一行的计算结果,生成的行被组合起来作为最终输出。APPLY运算符生成的列的列表是左输入中的列集,后跟右输入返回的列的列表。 APPLY 运算符的左操作数和右操作数都是表表达式。这些操作数之间的主要区别是:右操作数可以使用表值函数,从左操作数获取一个列作为函数的参数之一。左操作数可以包括表值函数,但不能以来自右操作数的列作为参数。演示一下APPLY 运算符的 阅读全文
posted @ 2011-03-02 11:00 cpcpc 阅读(247) 评论(0) 推荐(0)
摘要: Transact-SQL提供了4个排名函数: RANK(),DENSE_RANK(),ROW_NUMBER(),NTILE()下面是对这4个函数的解释:RANK() 返回结果集的分区内每行的排名。行的排名是相关行之前的排名数加一。如果两个或多个行与一个排名关联,则每个关联行将得到相同的排名。例如,如果两位销售员具有相同的SalesYTD值,则他们将并列第一。由于已有两行排名在前,所以具有下一个最大SalesYTD的销售人员将排名第三。因此,RANK 函数并不总返回连续整数。DENSE_RANK()返回结果集分区中行的排名,在排名中没有任何间断。行的排名等于所讨论行之前的所有排名数加一。如果有两 阅读全文
posted @ 2011-03-02 10:16 cpcpc 阅读(241) 评论(0) 推荐(0)
摘要: 1.简介EXCEPT和INTERSECT运算符使您可以比较两个或多个SELECT语句的结果并返回非重复值。2.区别EXCEPT运算符返回由EXCEPT运算符左侧的查询返回、而又不包含在右侧查询所返回的值中的所有非重复值。INTERSECT返回由INTERSECT运算符左侧和右侧的查询都返回的所有非重复值。3.注意事项(1).使用EXCEPT或INTERSECT比较的结果集必须具有相同的结构。它们的列数必须相同,并且相应的结果集列的数据类型必须兼容(2).INTERSECT运算符优先于EXCEPT(3).SELECT INTO必须是包含INTERSECT或EXCEPT运算符的语句中的第一个查询, 阅读全文
posted @ 2011-03-02 10:08 cpcpc 阅读(245) 评论(0) 推荐(0)