S- Q- L- Server2005-中的十个最重要的- T-- S- Q- L增强功能课件.pptVIP

  • 2
  • 0
  • 约2.2万字
  • 约 45页
  • 2019-05-23 发布于湖北
  • 举报

S- Q- L- Server2005-中的十个最重要的- T-- S- Q- L增强功能课件.ppt

DDL 触发器 允许为所有发生的T-SQL的数据定义语言(DDL)事件定义触发器 DDL触发器可以被定义在: 单个DDL语句: CREATE_TABLE, ALTER_PROCEDURE, DROP_LOGIN, etc 一组语句: DDL_DATABASE_LEVEL_EVENTS, DDL_DATABASE_SECURITY_EVENTS, etc DDL触发器可被规划在数据库和服务器的范围内 EventData() 函数 在DDL触发器内部,可以通过访问eventdata()函数获得与激发该触发器的事件有关的数据。该eventdata()函数返回有关事件的xml数据。 DDL 触发器 实例演示 CREATE TRIGGER trg_disallow_create_table ON DATABASE FOR CREATE_TABLE AS PRINT CREATE TABLE Issued.’; SELECT EVENTDATA().value((/EVENT_INSTANCE/ TSQLCommand/CommandText)[1],nvarchar(max)); RAISERROR (New tables cannot be created in this database., 16, 1); ROLLBACK; ; 新排序函数 返回和提供任何一个结果行在分区里的排序值 ROW_NUMBER RANK DENSE_RANK NTILE 用途 给结果行制定连续的整数排序值 数据分析和采集: Paging, Scoring, Histograms 新排序函数 ROW_NUMBER 对于在一个结果集的一个分区里的一个结果行,返回一个连续的整数排序值 RANK 对于在一个结果集的一个分区里的结果行,返回行的等级 每一个结果行的等级取决于当前行与先前结果行之间就排序列值的比较结果;含相同排序列值的结果行会计算在当前行的等级值里 DENSE_RANK 对于在一个结果集的一个分区里的结果行,返回不间断的行的等级 每一个结果行的等级取决于当前行与先前结果行之间就排序列值的比较结果;含相同排序列值的结果行不会计算在当前行的等级值里 NTILE 将在一个排序分区里的结果行分布成特定的小组 对于每一个结果行,NTILE会返回这个结果行所属的小组的号码 新排序函数 实例演示 SELECT ROW_NUMBER() OVER(ORDER BY City) AS Row_Num, RANK() OVER(ORDER BY City) AS Rank, RANK() OVER(PARTITION BY City ORDER BY LastName) AS Part_Rank, DENSE_RANK() OVER(ORDER BY City) AS Dense_Rank, NTILE(4) OVER(ORDER BY City, ) AS NTile_4, LastName, FirstName, City FROM Employees ORDER BY City, LastName 新排序函数 实例演示: 结果 1 1 1 1 1 Leverling Janet Kirkland 2 2 1 2 1 Buchanan Steven London 3 2 2 2 1 Dodsworth Anne London 4 2 3 2 2 King Robert London 5 2 4 2 2 Suyama Michael London 6 6 1 3 3 Peacock Margaret Redmond 7 7 1 4 3 Callahan Laura Seattle 8 7 2 4 4 Davolio Nancy Seattle 9 9 1 5 4 Fuller Andrew Tacoma Rank Part_Rank Dense_Rank NTile_4 LastName FirstName City Row_Number 新的关系运算符 PIVOT and UNPIVOT 可将一个table-valued的表达式转换成一个表 可被定义在FROM子句里 PIVOT 将行旋转为列 可能同时执行聚合 用途: 处理 open-schema 景象 生成跨越表格的报表以便更好的统计数据 UNPIVO

文档评论(0)

1亿VIP精品文档

相关文档