易截截图软件、单文件、免安装、纯绿色、仅160KB

SQL Server 2005中的T SQL增强(7) 通用表表达式CTE

通用表表达式 Common Table Expressions
通用表表达式(CTE)是一个可以由定义语句引用的临时表命名的结果集。在他们的简单形式中,您可以将CTE视为类似于视图和派生表混合功能的改进版本。在查询的from子句中引用CTE的方式类似于引用派生表和视图的方式。只须定义CTE一次,即可在查询中多次引用它。在CTE的定义中,可以引用在同一批处理中定义的变量。但是CTE的真正威力在于它们的递归功能,即CTE可以包含对它们自身的引用。
视图、派生表和CTE内部的查询的一般形式
1、视图
CREATE VIEW <view_name>(<column_aliases>) AS <view_query>
2、派生表
SELECT * from (<derived_table)query>) AS <dericed_table_alias>(<column_aliases>)
3、CTE
WITH <cte_alias>(<column_aliases>)
AS
{
<cte_query>
)
SELECT * from <cte_alias]>
在关键字WITH之后,为CTE提供一个别名,并且为它的结果列提供一个可选的别名列表;编写CTE的主体;然后从外部查询中引用它。
4、演示代码
USE AdventureWorks
GO
WITH SalesCTE(ProductID, SalesOrderID)
AS
(
SELECT ProductID, COUNT(SalesOrderID)
from Sales.SalesOrderDetail
GROUP BY ProductID
)
SELECT * from SalesCTE
Recursive CTEs 递归的通用表表达式
递归的CTE是根据至少两个查询(或者称为两个成员)构建的,一个是非递归查询,也成为固定成员,只能调用一次,另外一个是递归查询,也成为递归成员(RM),可以反复调用,直到查询不再返回行。查询由UNION ALL运算符连接为一个单独的CTE。
--使用递归的通用表表达式
USE demo
GO
CREATE TABLE CarParts
(
CarID INT NOT NULL,
Part VARCHAR(15),
SubPart VARCHAR(15),
Qty INT
)
GO
INSERT CarParts VALUES (1, 'Body', 'Door', 4)
INSERT CarParts VALUES (1, 'Body', 'Trunk Lid', 1)
INSERT CarParts VALUES (1, 'Body', 'Car Hood', 1)
INSERT CarParts VALUES (1, 'Door', 'Handle', 1)
INSERT CarParts VALUES (1, 'Door', 'Lock', 1)
INSERT CarParts VALUES (1, 'Door', 'Window', 1)
INSERT CarParts VALUES (1, 'Body', 'Rivets', 1000)
INSERT CarParts VALUES (1, 'Door', 'Rivets', 100)
INSERT CarParts VALUES (1, 'Door', 'Mirror', 1)
GO
SELECT * from CarParts
GO
WITH CarPartsCTE(SubPart, Qty)
AS
(


相关文档:

sql_map_config.xml(SQL Map环境文件)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
 "http://www.ibatis.com/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
 <!-- 配置和优化SQL Map解析实例的设定 -->
 <settings cacheModelsEnabled=" ......

SQL Collation

     文章由来: 最近需要做这样的测试:Install the products on machine which case-insensitive SQL installed.
所谓case-insensitive SQL installed 指在数据库安装时选择排序规则时 需要选择大小写区别的规则。
 
  排序规则简介:
    MS是这样描述的:"在  Micr ......

sql工具

最近在用sqlcmd工具进行数据备份,今天在换到sql2000时突然不能用。原来2000是没有这个工具的:
sql2005:
sqlcmd -S 服务器名或服务器地址 -U 用户 -P 密码 -i "引用的sql语句文件"
sql2000:可以用osql代替,功能一样
osql -S 服务器名或服务器地址 -U 用户 -P 密码 -i "引用的sql语句文件" ......

SQL Server 2005中的T SQL增强(2) 快照隔离

快照隔离 Snapshot Isolation
1、写入程序不会阻碍读取程序
2、新的隔离级别提供了以下优点:
1) 提高了只读应用程序的数据可用性
2) 允许在OLTP环境中执行非阻止读取操作
3) 可对写入事务进行自动的强制冲突检测
3、演示代码
CREATE DATABASE demo2
GO
USE demo2
ALTER DATABASE demo2 SET allow_snapsho ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号