【文章內(nèi)容簡介】
mployeeID, ManagerID, Title) AS ( SELECT EmployeeID, ManagerID, Title FROM WHERE EmployeeID = ?109? UNION ALL SELECT , , FROM AS E JOIN EmpCTE AS M ON = ) SELECT * FROM EmpCTE DDL 觸發(fā)器 允許為所有發(fā)生的 TSQL的數(shù)據(jù)定義語言 (DDL)事件定義觸發(fā)器 DDL觸發(fā)器可以被定義在 : 單個 DDL語句 : CREATE_TABLE, ALTER_PROCEDURE, DROP_LOGIN, etc 一組語句 : DDL_DATABASE_LEVEL_EVENTS, DDL_DATABASE_SECURITY_EVENTS, etc DDL觸發(fā)器可被規(guī)劃在數(shù)據(jù)庫和服務器的范圍內(nèi) EventData() 函數(shù) 在 DDL觸發(fā)器內(nèi)部,可以通過訪問 eventdata()函數(shù)獲得與激發(fā)該觸發(fā)器的事件有關的數(shù)據(jù)。該 eventdata()函數(shù)返回有關事件的 xml數(shù)據(jù)。 DDL 觸發(fā)器 實例演示 CREATE TRIGGER trg_disallow_create_table ON DATABASE FOR CREATE_TABLE AS PRINT 39。CREATE TABLE Issued.?。 SELECT EVENTDATA().value(39。(/EVENT_INSTANCE/ TSQLCommand/CommandText)[1]39。,39。nvarchar(max)39。)。 RAISERROR (39。New tables cannot be created in this database.39。, 16, 1)。 ROLLBACK。 。 新排序函數(shù) 返回和提供任何一個結果行在分區(qū)里的排序值 ROW_NUMBER RANK DENSE_RANK NTILE 用途 給結果行制定連續(xù)的整數(shù)排序值 數(shù)據(jù)分析和采集 : Paging, Scoring, Histograms 新排序函數(shù) ROW_NUMBER 對于在一個結果集的一個分區(qū)里的一個結果行 ,返回一個連續(xù)的整數(shù)排序值 RANK 對于在一個結果集的一個分區(qū)里的結果行 ,返回行的等級 每一個結果行的等級取決于當前行與先前結果行之間就排序列值的比較結果 。含相同排序列值的結果行會計算在當前行的等級值里 DENSE_RANK 對于在一個結果集的一個分區(qū)里的結果行 ,返回不間斷的行的等級 每一個結果行的等級取決于當前行與先前結果行之間就排序列值的比較結果 。含相同排序列值的結果行不會計算在當前行的等級值里 NTILE 將在一個排序分區(qū)里的結果行分布成特定的小組 對于每一個結果行 ,NTILE會返回這個結果行所屬的小組的號碼 新排序函數(shù) 實例演示 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 新排序函數(shù) 實例演示 : 結果 1 1 1 1 1 Leverling Ja 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 Taa Rank Part_Rank Dense_Rank NTile_4 LastName FirstName City Row_Number 新的關系運算符 PIVOT and UNPIVOT 可將一個 tablevalued的表達式轉(zhuǎn)換成一個表 可被定義在 FROM子句里 PIVOT 將行旋轉(zhuǎn)為列 可能同時執(zhí)行聚合 用途 :