您的位置:首页 > 数据库

SQL备忘录(0106更新......)

2008-12-25 17:47 295 查看
N' AND (p_name like ''%'+ @KEY +'%''' //sql 写法 ''%'+ +'%''

ajax分页 2种方式

注意:

page是1 显示取 *

page不是1 显示取 * 在not in 里面 显示id 不是显示*

where子句 条件都是一样

alter proc m3_guestbook_getlist

@TYPE int,

@PAGE int,

@PAGESIZE int

as

set nocount on

declare @COUNT int

declare @NO1 int

declare @NO2 int

declare @SQL NVARCHAR(1024)

if @TYPE = 0

begin

if @PAGE = 1

BEGIN

SET @SQL=N' select TOP '+ CAST(@PAGESIZE as nvarchar(10)) +' * from m3_guestbook where gb_type=0 order by gb_id desc '

END

else

begin

SET @SQL=N' select TOP '+ CAST(@PAGESIZE as nvarchar(10)) +' * from m3_guestbook where gb_type=0 '+

' and gb_id not in (select TOP '+ CAST((@PAGE-1) * @PAGESIZE AS NVARCHAR(10)) +' gb_id from m3_guestbook where gb_type=0 order by gb_id desc) '+

' order by gb_id desc'

end

end

else

begin

if @PAGE = 1

BEGIN

SET @SQL=N' select TOP '+ CAST(@PAGESIZE as nvarchar(10)) +' * from m3_guestbook order by gb_id desc '

END

else

begin

SET @SQL=N'select TOP '+ CAST(@PAGESIZE as nvarchar(10)) +' * from m3_guestbook '+

' where gb_id not in (select TOP '+ CAST((@PAGE-1) * @PAGESIZE AS NVARCHAR(10)) +' gb_id from m3_guestbook order by gb_id desc) '+

'order by gb_id desc'

end

end

exec sp_executesql @SQL

SET ROWCOUNT 和 Top 作用一样

Microsoft SQL Server在返回指定的行数之后停止处理查询

select ... into 临时表 from 表 .....

实例:日志管理-点播统计ajax.aspx.cs- GetPlayCounts -logBll.GetCount

DB: 表:m3_lograteex PROC:m3_lograteex_getlist

对表 进行2次操作

select lre_program_id, count(lre_program_id) as lre_count from m3_lograteex group by lre_program_id order by count(lre_program_id) desc

得到 每一个lre_program_id点播的次数 通过group by lre_program_id 分组得到

还要得到 经分组后一共有多少个lre_program_id 用 select ... into 临时表 from 表 .....

select lre_program_id, count(lre_program_id) as lre_count into modtemp from m3_lograteex group by lre_program_id order by count(lre_program_id) desc

select count(1) from modtemp

drop table modtemp

关于SET NOCOUNT

写存储过程的时候一直没有注意:SET NOCOUNT 这个是什么意思,今天突然想查一查:

当 SET NOCOUNT 为 ON 时,不返回计数(表示受 Transact-SQL 语句影响的行数)。当 SET NOCOUNT 为 OFF 时,返回计数。

如果存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: