av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

SQLServer2008Merge語句之功能,OUTPUT

此文章主要講述的是SQL Server 2008 Merge語句之功能,OUTPUT,SQL Server 2005的Output功能能把Insert,Update以及Delete的內(nèi)容全部都返回,2008數(shù)據(jù)庫中的Output同樣具有此功能,下面介紹一下把Output同2008的新T-SQL語句Merge組合使用的方法:

創(chuàng)新互聯(lián)專注于丹寨企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城網(wǎng)站定制開發(fā)。丹寨網(wǎng)站建設(shè)公司,為丹寨等地區(qū)提供建站服務(wù)。全流程按需求定制開發(fā),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

SQL Server 2005中的Output功能可以把Insert,Update和Delete的內(nèi)容都返回,2008中的Output同樣具有此功能,下面介紹一下把Output同2008的新T-SQL語句Merge組合使用的方法:

新建下面表:

 
 
 
  1. view plaincopy to clipboardprint?   
  2. CREATE TABLE Book(   
  3. ISBN varchar(20) PRIMARY KEY,   
  4. Price decimal,   
  5. Shelf int)   
  6. CREATE TABLE WeeklyChange(   
  7. ISBN varchar(20) PRIMARY KEY,   
  8. Price decimal,   
  9. Shelf int)   
  10. CREATE TABLE BookHistory(   
  11. Action nvarchar(10),   
  12. NewISBN varchar(20),   
  13. NewPrice decimal,   
  14. NewShelf int,   
  15. OldISBN varchar(20),   
  16. OldPrice decimal,   
  17. OldShelf int,   
  18. ArchivedAt datetime2)   
  19. CREATE TABLE Book(   
  20. ISBN varchar(20) PRIMARY KEY,   
  21. Price decimal,   
  22. Shelf int)   
  23. CREATE TABLE WeeklyChange(   
  24. ISBN varchar(20) PRIMARY KEY,   
  25. Price decimal,   
  26. Shelf int)   
  27. CREATE TABLE BookHistory(   
  28. Action nvarchar(10),   
  29. NewISBN varchar(20),   
  30. NewPrice decimal,   
  31. NewShelf int,   
  32. OldISBN varchar(20),   
  33. OldPrice decimal,   
  34. OldShelf int,   
  35. ArchivedAt datetime2)   

SQL Server 2008 Merge語句的OUTPUT功能的SQL語句為

 
 
 
  1. view plaincopy to clipboardprint?   
  2. MERGE Book AS B   
  3. USING WeeklyChange AS WC   
  4. ON B.ISBN = WC.ISBN   
  5. WHEN MATCHED AND (B.Price <> WC.Price OR B.Shelf <> WC.Shelf) THEN   
  6. UPDATE SET B.Price = WC.Price, B.Shelf = WC.Shelf   
  7. WHEN NOT MATCHED THEN   
  8. INSERT VALUES(WC.ISBN, WC.Price, WC.Shelf)   
  9. OUTPUT $action, inserted.*, deleted.*, SYSDATETIME()   
  10. INTO BookHistory;   
  11. MERGE Book AS B   
  12. USING WeeklyChange AS WC   
  13. ON B.ISBN = WC.ISBN   
  14. WHEN MATCHED AND (B.Price <> WC.Price OR B.Shelf <> WC.Shelf) THEN   
  15. UPDATE SET B.Price = WC.Price, B.Shelf = WC.Shelf   
  16. WHEN NOT MATCHED THEN   
  17. INSERT VALUES(WC.ISBN, WC.Price, WC.Shelf)   
  18. OUTPUT $action, inserted.*, deleted.*, SYSDATETIME()   
  19. INTO BookHistory;  

 

結(jié)果集為:

 
 
 
  1. SELECT * FROM BookHistory   
  2. GO   
  3. Action NewISBN NewPrice NewShelf OldISBN OldPrice OldShelf ArchivedAt   
  4. UPDATE A 101 1 A 100 1 2007-11-25 14:47:23.9907552   
  5. INSERT C 300 3 NULL NULL NULL 2007-11-25 14:47:23.9907552   

這里有Insert和Update兩種Output情況。如果只需要其中一種,可以用下面這種方法過濾:

 
 
 
  1. view plaincopy to clipboardprint?   
  2. INSERT INTO Book(ISBN, Price, Shelf, ArchivedAt)   
  3. SELECT ISBN, Price, Shelf, GETDATE() FROM   
  4. (MERGE Book AS B   
  5. USING WeeklyChange AS WC   
  6. ON B.ISBN = WC.ISBN AND B.ArchivedAt IS NULL   
  7. WHEN MATCHED AND (B.Price <> WC.Price OR B.Shelf <> WC.Shelf) THEN   
  8. UPDATE SET Price = WC.Price, Shelf = WC.Shelf   
  9. WHEN NOT MATCHED THEN   
  10. INSERT VALUES(WC.ISBN, WC.Price, WC.Shelf, NULL)   
  11. OUTPUT $action, WC.ISBN, Deleted.Price, Deleted.Shelf   
  12. ) CHANGES(Action, ISBN, Price, Shelf)   
  13. WHERE Action = 'UPDATE';  

以上的相關(guān)內(nèi)容就是對(duì)SQL Server 2008 Merge語句的OUTPUT功能的介紹,望你能有所收獲。


當(dāng)前文章:SQLServer2008Merge語句之功能,OUTPUT
網(wǎng)頁網(wǎng)址:http://uogjgqi.cn/article/djjpdhc.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流