use [jccmsdb]
go/****** 物件: storedprocedure [dbo].[up_datapagerownumber] 指令碼日期: 04/25/2013 20:06:12 ******/
set ansi_nulls on
goset quoted_identifier on
goalter procedure[dbo].[up_datapagerownumber]
@sql nvarchar(2000),
@order nvarchar(40),
@pageindex int,
@pagesize int,
@totalrecorder int output
asbegin
set nocount on;
declare @excesql nvarchar(4000)
declare @start_row_num as int
set @start_row_num=(@pageindex-1)*@pagesize+1
declare @end_row_num int
set @end_row_num=@pageindex*@pagesize
declare @rownumber nvarchar(100)
set @rownumber=',row_number() over(order by '+@order+')as rownumber from'
set @sql=replace(@sql,'from',@rownumber)
set @excesql='select @totalrecorder=max(rownumber)from(' +@sql+ ')as tmp'
execute sp_executesql @excesql,n'@totalrecorder int output',@totalrecorder output
set @excesql = 'select*from(' + @sql + ') as tmp where rownumber between' +convert( nvarchar,@start_row_num)
+ 'and' +convert( nvarchar,@end_row_num)
print @excesql
execute(@excesql)
enddeclare @a int
exec up_datapagerownumber "select * from jc_article","id",2,2,@a output
print @a
為什麼會一直抱這個錯??抓狂。。。。
select*from(select * ,row_number() over(order by id)as rownumber from jc_article) as tmp where rownumber between3and4
訊息 4145,級別 15,狀態 1,第 1 行
在應使用條件的上下文(在 'between3and4' 附近)中指定了非布林型別的表示式。
關於Oracle的儲存過程
關於oracle儲存過程 實習了好幾個月,才知道有這麼一種東西。附示例 作為筆記備忘吧 create or replace procedure proc test 引數區域 is 變數區域 sql指令碼 v sql varchar2 2000 記錄學生數量 v num number begin 執行...
關於mysql儲存過程
刪除 drop procedure if exists 名稱 建立例項 create procedure add caller myuid int,fwuid int,dt datetime,out returnvalue int begin declare exresult int declare...
關於SQL儲存過程
儲存過程 stored procedure 是一組為了完成特定功能的sql 語句,集經編譯後 儲存在資料庫中,使用者通過指定儲存過程的名字並給出引數,如果該儲存過程帶有引數來執行 它。儲存過程具有以下優點 1.在資料庫中儲存的儲存過程都是編譯過的,執行速度快。2.允許模組化程式設計,型別方法的復用。...