Sql開發技巧

簡介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)
相關文章
相關標籤/搜索