应一个朋友的要求,贴上收藏的SQL常用分页的办法~~
表中主键必须为标识列,[ID] int IDENTITY (1,1)
1.分页方案一:(利用Not In和SELECT TOP分页)
语句形式:
SELECT TOP 页记录数量 *
from 表名
WHERE (ID NOT IN
(SELECT TOP (每页行数*(页数-1)) ID
from 表名
ORDER BY ID))
ORDER BY ID
//自己还可以加上一些查询条件
例:
select top 2 *
from Sys_Material_Type
where (MT_ID not in
(select top (2*(3-1)) MT_ID from Sys_Material_Type order by MT_ID))
order by MT_ID
2.分页方案二:(利用ID大于多少和SELECT TOP分页)
语句形式:
SELECT TOP 每页记录数量 *
from 表名
WHERE (ID >
(SELECT MAX(id)
from (SELECT TOP 每页行数*页数 id from 表
ORDER BY id) AS T)
)
ORDER BY ID
例:
SELECT TOP 2 *
from Sys_Material_Type
WHER ......
1、PL/SQL Developer记住登陆密码
在使用PL/SQL Developer时,为了工作方便希望PL/SQL Developer记住登录Oracle的用户名和密码;
设置方法:PL/SQL Developer 7.1.2 ->tools->Preferences->Oracle->Logon History , “Store history”是默认勾选的,勾上“Store with password” 即可,重新登录在输入一次密码则记住了。
2、执行单条SQL语句
在使用PL/SQL Developer的SQL Window时,按F8键,PL/SQL Developer默认是执行该窗口的所有SQL语句,需要设置为鼠标所在的那条SQL语句,即执行当前SQL语句;
设置方法:PL/SQL Developer 7.1.2 -->tools->Preferences-->Window types ,勾上“AutoSelect Statement” 即可。
3、格式化SQL语句
在使用PL/SQL Developer的SQL Window时,有时候输入的SQL语句太长或太乱,希望能用比较通用的写法格式话一下,这样看起来会好看些,也好分析;
使用方法:选中需要格式化的SQL语句,然后点击工具栏的PL/SQL beautifier按钮即可.
4、查看执行计划
在使用PL/SQL Developer的SQL Wi ......
I'm continually trying to track down what service packs are installed on various SQL Servers I support. I can never find the right support page on Microsoft's site. So here's an article with all the SQL Server version information I can track down. If you know of any older versions or can help me fill out any missing data, please post in the comments and I'll update the article.
The versions of SQL Server are listed in the following table. Below the table are instructions to determine what build you are running.
SQL Server 2008
10.00.27.57
SQL Server 2008 SP1 CU6
18 Jan 2010
10.00.2746
SQL Server 2008 SP1 CU5
24 Nov 2009
10.00.2734
SQL Server 2008 SP1 CU4
22 Sept 2009
10.00.2723
SQL Server 2008 SP1 CU3
21 July 2009
10.00.2714
SQL Server 2008 SP1 CU2
18 May 2009
10.00.2710
SQL Server 2008 SP1 CU1
16 Apr 2009
10.00.2531
SQL Server 2008 SP1
7 Apr 2009
10.00.1828
SQL Server 2008 RTM CU9
18 Jan 2009
10.00.1823
SQL Server 2008 RTM CU8
16 Nov 2009
10.00.1818
SQL ......
SQL Server 系统全局变量
@@CONNECTIONS
返回自上次启动以来连接或试图连接的次数。
@@CURSOR_ROWS
返回连接上最后打开的游标中当前存在的合格行的数量(返回被打开的游标中还未被读取的有效数据行的行数)
@@DATEFIRST
返回每周第一天的数字
@@ERROR
返回最后执行的SQL 语句的错误代码。
@@FETCH_STATUS
返回被 FETCH 语句执行的最后游标的状态,而不是任何当前被连接打开的游标的状态。
@@IDENTITY
返回最后插入的标识值
@@LANGID
返回当前所使用语言的本地语言标识符(ID)。
@@LANGUAGE
返回当前使用的语言名。
@@LOCK_TIMEOUT
返回当前会话的当前锁超时设置,单位为毫秒。
@@PROCID
返回当前过程的存储过程标识符 (ID) 。
@@ROWCOUNT
返回受上一语句影响的行数。
@@SERVERNAME
返回运行 的本地服务器名称。
@@SPID
返回当前用户进程的服务器进程标识符 (ID)。
@@TRANCOUNT
返回当前连接的活动事务数。
@@VERSION
返回当前安装的日期、版本和处理器类型。
@@CPU_BUSY
返回自SQL Server 最近一次启动以来CPU 的工作时间其单位为毫秒
@@DATEFIRST
返回使用SET DATEFIRST 命令而被赋值的DATAFIRST 参数值SET DATEFIRST,命令 ......
/*
本文专注于将Excel导入SQL SERVER2005数据库
此路径下的这个工具,是SQL SERVER2005 用来导入导出数据的工具。
C:\Program Files\Microsoft SQL Server\90\DTS\Binn\DTSWizard.exe
一般在数据库名上--右键-->Tasks-->Import Data -->界面就出来了,和点击上面的工具是一个东西。
首次使用这个DTS工具可能会报错,因为有东西没有启动,按照我下面的两步来,即可解决掉,然后就能让上面的工作了。
*/
--<一>显示高级选项:
sp_configure 'show advanced options',1
RECONFIGURE WITH override
go
sp_configure 'Ad Hoc Distributed Queries',1
RECONFIGURE WITH override
go
--<二>用sp_configure将'Ad Hoc Distributed Queries' 打开并设置
USE master
go
EXEC sp_configure 'Ad Hoc Distributed Queries',1
RECONFIGURE;
EXEC sp_configure;
----------------------------------------------------------------------------------
--从另一个sql server导入sql server的代码是:
SELECT *
from OPENDATASOURCE(
'SQLOLEDB',
'server=YKTCPC-105\\JERRYSQL200 ......
-- FUN:存储过程分页
-- @Table nvarchar(255), -- 表名
-- @Fields nvarchar(1000) = ' * ', -- 需要返回的列
-- @OrderField nvarchar(255), -- 排序的字段名,一般为唯一标识
-- @OrderType bit = 0, -- 设置排序类型, 非 0 值则降序
-- @PageSize int = 10, -- 每页有多少条记录
-- @PageIndex int = 1, -- 第几页
-- @Count int output, -- 返回记录总数
-- @StrWhere nvarchar(1500) -- 查询条件 (注意: 不要加 where,初始化为1=1使得查询条件永远不为空)
----------------------------------------------------------
ALTER PROC [dbo].[PR_pages]
(
@Table nvarchar(4000), -- 表名
@Fields nvarchar(1000) = ' * ', -- 需要返回的列
@OrderField nvarchar(255), -- 排序的字段名,一般为唯一标识
@OrderType bit = 0, -- 设置排序类型, 非 0 值则降序
@PageSize int = 10, -- 每页有多少条记录
@PageIndex int = 1, -- 第几页
@StrWhere nvarchar(1500), -- 查询条件 (注意: 不要加 where,初始化为1=1使得查询条件永远不为空)
@Count int output -- 返回记录总数
)
AS
......