一个sql分页的存储过程
CREATE procedure SqlPager_Ex
@sqlstr varchar(8000), --查询字符串
@currentpage int, --第N页
@pagesize int --每页行数,
as
set nocount on
declare @P1 int, --P1是游标的id
@rowcount int
exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output
select ceiling(1.0*@rowcount /@pagesize) as 总页数 --,@rowcount as 总行数,@currentpage as 当前页
set @currentpage=(@currentpage-1)*@pagesize+1
exec sp_cursorfetch @P1,16,@currentpage,@pagesize
exec sp_cursorclose @P1
set nocount off
GO
相关文档:
1. 创建视图:
CREATE OR REPLACE VIEW SM_V_UNIT_AUTH AS
SELECT T2.UNIT_ID,
T2.SUPER_UNIT_ID,
T1.AUTH_ID,
T1.AUTH_NAME,
T1.A ......
一直都想找个时间研究一下,今天花了一天时间去实践了一下,非常有用。可以说是数据库里面的精华吧。还好我今天去弄了几下,虽说都是些简单的语句,但是最起码知道以后在项目该怎么去做了。 闲话少说。进入正题。
1.创建SQL存储过程:
CREATE PROCEDURE stu_proc1//指定过程名
@Sno varc ......
一、加快sql的执行速度
1.select 语句中使用sort,或join
如果你有排序和连接操作,你可以先select数据到一个临时表中,然后再对临时表进行处理。因为临时表是建立在内存中,所以比建立在磁盘上表操作要快的多。
如:
SELECT time_records.*, case_name
from time_records, OUTER cases
WHERE time_re ......
调用 MS SQL 标量值函数,应该在函数前面加上 "dbo.",否则会报 “不是可以识别的 内置函数名称”错误。例如
DECLARE @WhichDB TINYINT;
SELECT @WhichDB = user_GetWhichDB(1);--看看是哪个数据库的
=================================================
-- ......
DBMS_CHANGE_NOTIFICATION
对象(表)数据更新通知
DBMS_APPLICATION_INFO
设置/读取SESSION APPLICATION信息,操作V$SESSION_LONGOPS
DBMS_ALERT
告警
DBMS_DATAPUMP
数据迁移
DBMS_DB_VERSION
数据库版本定义
DBMS_DDL
Compiles、wrapped、Reorganizes 对象
DBMS_DEBUG
ORACLE DEPL/SQL debugger 工具
DB ......