SQL Server 2005中的T-SQL增强(二)
2009-05-20 23:53
369 查看
通用表表达式 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、演示代码
总结
SQL Server 2005中的Transaction-SQL增强功能提高了用户在编写查询时的表达能力,使用户可以改善代码的性能,并且扩充了错误处理能力。SQL Server 2005 在Transaction-SQL上所做的改进反映了其更好地满足了ANSI-99 SQL规范的要求以及客户的需求。在Transaction-SQL和托管代码之间的选择。
通用表表达式(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 demo GO CREATE TRIGGER prevent_drop_table ON DATABASE FOR DROP_TABLE AS RAISERROR('没有删除表的权限.', 10, 1) PRINT '尝试在数据库' + DB_NAME() + '中删除表.' PRINT CONVERT (nvarchar (1000),EventData()) ROLLBACK GO -- 测试 CREATE TABLE TestDROP(col1 INT) GO INSERT INTO TestDROP VALUES(1) DROP TABLE testdrop -- Server CREATE TRIGGER audit_ddl_logins ON ALL SERVER FOR CREATE_LOGIN, ALTER_LOGIN, DROP_LOGIN AS PRINT '发生DDL LOGIN.' PRINT CONVERT (nvarchar (1000),EventData()) GO -- 测试 CREATE LOGIN login1 WITH PASSWORD = '123' ALTER LOGIN login1 WITH PASSWORD = 'xyz' DROP LOGIN login1
总结
SQL Server 2005中的Transaction-SQL增强功能提高了用户在编写查询时的表达能力,使用户可以改善代码的性能,并且扩充了错误处理能力。SQL Server 2005 在Transaction-SQL上所做的改进反映了其更好地满足了ANSI-99 SQL规范的要求以及客户的需求。在Transaction-SQL和托管代码之间的选择。
相关文章推荐
- 谈SQL Server 2005中的T-SQL增强E
- [转]SQL Server 2005中的T-SQL增强
- SQL Server 2005中的T-SQL增强
- SQL Server 2005 Beta 2 Transact-SQL 增强功能
- SQL Server 2005对T-SQL的增强之在聚合函数的后面使用over关键字
- SQL Server 2005 Beta 2 Transact-SQL 增强功能 2
- SQL Server 2005中的T-SQL增强B
- SQL Server 2005 T-SQL增强
- SQL Server 2005 Beta 2 Transact-SQL 增强功能
- SQL Server 2005中的T-SQL增强C
- SQL Server 2005中的T-SQL增强F
- SQL Server 2005中的T-SQL增强
- SQL Server 2005 Beta 2 Transact-SQL 增强功能 1
- SQL Server 2005中的T-SQL增强
- 谈SQL Server 2005中的T-SQL增强
- sql server 2005 T-Sql 增强
- SQL Server 2005 Beta 2 Transact-SQL 增强功能
- SQL Server 2005中的T-SQL增强(一)
- SQL Server 2005 Beta 2 Transact-SQL 增强功能
- SQL Server 2005中的T-SQL增强