簡介sql
本文主要介紹下述幾個技巧:函數
使用Row_Number分頁code
事務事務
根據條件刷選記錄的技巧it
分頁io
主要是使用了Row_Number()這個函數。通常以下:class
declare @PageSize int; declare @StartIndex int; with MyTable_Paged as( select Row_Number() over(order by col_1) as '', * from MyTalbe where condition ) select * from MyTable_Paged where RowNumber between StartIndex and StartIndex+@PageSize-1
事務select
這個在複雜的sql語句中常常用,尤爲配合存儲過程。可以使一個操做原子化,防止只執行部分的操做。(當一個存在過程在執行的時候,是一條一條語句執行的,當出現錯誤的時候回中止執行,可是若是前面已經執行了一些語句,那麼沒有事務機制的話,該執行不可以回滾。)sql語句
begin try begin tran sqlstatement commit tran end try begin catch rollback tran end catch
根據條件刷選記錄技巧
這個技巧在於當某一個條件可用可不用的狀況下,沒必要使用衆多的if等條件選擇語句
好比須要篩選的條件以下:Name,Phone,Email
select * from MyTalbe where ([Name]=@Name or @Name is null) and (Phone=@Phone or @Phone is null) and (Email=@Email or @Email is null)