sql server實現儲存過程與查詢的四種方法

2021-09-25 23:58:39 字數 1956 閱讀 2303

1:實現資料庫查詢指定記錄的四種方法 如:從十一到二十條:

//top

select top 10 * from admininfo as a where a.id not in(select top 10 id from admininfo )

//max

//首先

select top 10 id from admininfo

//其次

select max(id) from admininfo as a where  a.id in(select top 10 id from admininfo)

//整合

select top 10 * from admininfo as b where b.id>(select max(id) from admininfo as a where  a.id in(select top 10 id from admininfo)

);//between and

select * from admininfo where id between 11 and 20

//第四種最為常用

select * from (select *,row_number()over(order by id)as number from admininfo) as a where a.number between 11 and 20

2:sql中建立實現迴圈的儲存過程:

create procedure xuanhuan (@count int )        //create 關鍵字:procedure 方法名(「所需引數」)

as declare @num int ;    //定義變數名

set @num=@count;     //給變數名賦值

while(@num>0)         //迴圈方法

begin                 //條件的開始

print @num;           //輸出

set @num-=1;        //迴圈賦值

end                   //條件的結束

exec dbo.xuanhuan 3        --執行儲存過程通過關鍵字exec 儲存過程的方法名 所需引數

3:通過sql實現分頁儲存過程

--通過關鍵字exec執行呼叫自定義方法並給指定引數

exec dbo.pagelistproc 1,5,'dbo.admininfo','*','id','asc'  

create procedure pagelistproc (@pageindex int,

@pagesize int,@tablename varchar(200),@columnname varchar(500),@orderby varchar(50),@sort varchar(50)

)asdeclare @sql nvarchar(2000);  --定義乙個查詢分頁的sql語句

--編寫sql查詢分頁  並將所需表,列,頁碼等用所傳的指定引數賦值替代

set @sql='select '+@columnname+' from(select '+@columnname+' ,row_number()over(order by '+@orderby+' )

as number from '+@tablename+' )t where t.number between '+cast(((@pageindex-1)*@pagesize)

as varchar(200))+' and '+ cast((@pagesize*@pageindex) as varchar(200))

--執行sql

exec(@sql);

SQL SERVER儲存過程實現分頁

create procedure dbo sp pagelist 建立儲存過程 stationid nvarchar 32 工位id pagesize int,每頁顯示的項數 pageindex int 當前頁數 as begin 獲取總行數,用count declare sqlselect nva...

sql server儲存過程實現批量刪除

在專案中用到了儲存過程來進行批量刪除的操作,給大家分享一下 原理就是把id組成的字串在資料庫分割成陣列放一張臨時表,刪除的時候與id進行對照 刪除會員資訊 ifobject id pro deluserinfo p is notnull 判斷儲存過程是否存在 drop proc pro deluse...

sql server儲存過程

建立表的語句 create table student sno int primary key,sname nvarchar 30 sgentle nvarchar 2 sage int,sbirth smalldatetime,sdept nvarchar 30 drop table studen...