簡(jiǎn)介
本文主要介紹下述幾個(gè)技巧:
- 使用Row_Number分頁
- 事務(wù)
- 根據(jù)條件刷選記錄的技巧
分頁
主要是使用了Row_Number()這個(gè)函數(shù)。一般如下:
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
事務(wù)
這個(gè)在復(fù)雜的sql語句中經(jīng)常用,尤其配合存儲(chǔ)過程。能夠使一個(gè)操作原子化,防止只執(zhí)行部分的操作。(當(dāng)一個(gè)存在過程在執(zhí)行的時(shí)候,是一條一條語句執(zhí)行的,當(dāng)出現(xiàn)錯(cuò)誤的時(shí)候回停止執(zhí)行,但是如果前面已經(jīng)執(zhí)行了一些語句,那么沒有事務(wù)機(jī)制的話,該執(zhí)行不能夠回滾。)
begin try
begin tran
sqlstatement
commit tran
end try
begin catch
rollback tran
end catch
根據(jù)條件刷選記錄
這個(gè)技巧在于
當(dāng)某一個(gè)條件可用可不用的情況下,不必使用眾多的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)
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
