简介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)