1.高效分页sql和储存过程

select top 每页条数 *
from
(
select ROW_NUMBER() over (order by id)as nid ,* from table01
) as a
where a.nid>(每页条数*(当前页数-1))

储存过程

if(exists(select * from sys.procedures where name='proc_MyPage'))
drop proc proc_MyPage
go
Create proc proc_MyPage
(
@PageSize int,
@CurrentPage int
)
as
select top (@PageSize) *
from
(
select ROW_NUMBER()over(order by id) as nId ,* from table1
)as a
where nId>((@PageSize)*((@CurrentPage)-1)

2.临时表

不创建临时表,直接向表中插入带自增Id的数据

select id=IDENTITY(int,1,1) ,* into #tempTb from table1--向临时表中插入table1的所以的数据,并有自增id

if OBJECT_ID('tempdb..#tempTb') is not null  --判断临时表是否存在
Begin
truncate table #Tmp
drop table #tempTb --删除临时表#tempTb
End

3.视图

创建视图

create view v_table01 as
select * from table01 --直接写sql即可
DROP VIEW v_table01 --删除视图

4.触发器

两张表calsses和student,向表calass表中插入数据,触发器先表student插入数据

插入表(instered表)和删除表(deleted表)。这两张是逻辑表也是虚表。有系统在内存中创建者两张表,不会存储在数据库中。而且两张表的都是只读的,只能读取数据而不能修改数据。这两张表的结果总是与被改触发器应用的表的结构相同。

if(OBJECT_ID('tgr_Classes_Insert','tr') is not null)
drop trigger tgr_Classes_Insert
go
create trigger tgr_Classes_Insert
on Classes
for insert --插入触发
as
declare @id int,@Cname varchar(20),@stuNo int
select @id=id,@Cname=calssName, from inserted;--inserted表的机构和Classes(被触发应用的表)的表的结构相同
set @Cname=@Cname+CONVERT(nvarchar,@id); 
set @stuNo=@id/2;
insert into student values(@id,'',@stuNo,18+@id,@Cname);
print '添加成功!';
go
insert into Classes values(2,'二班',8,8094) --插入数据触发触发器
--查询两张表的情况,查询结构如下图
select * from Classes select * from student

sqlserver的一些小知识点的更多相关文章

  1. 刚接触Linux,菜鸟必备的小知识点(一)

    身为一个将要大四的学生,而且还是学计算机的没有接触过linux简直是羞愧难当.这个假期做了一个软件测试员,必须要熟悉linux的操作,所以对于我这个菜鸟我也就说几点比较重要的小知识点吧. 第一.cd指 ...

  2. Java学习过程中的总结的小知识点(长期更新)

    Java学习过程中的总结的小知识点 (主要是自己不会的知识和容易搞错的东西) 计算某个程序运行的时间 long stime=System.currentTimeMillis(); copy3(file ...

  3. 【转】HTML5的小知识点小集合

    html5的小知识点小集合 html5知识   1.  Doctype作用?标准模式与兼容模式各有什么区别? (1).<!DOCTYPE>声明位于位于HTML文档中的第一行,处于<h ...

  4. AngularJS的小知识点

    小知识点:$scope和$rootScope (1)每次使用ngController指令,都会调用控制器的创建函数,创建出一个控制器对象. (2)每次创建一个控制器对象,AngularJS都会创建一个 ...

  5. js中关于value的一个小知识点(value既是属性也是变量)

    今天在学习input的value值时,发现这么一个小知识点,以前理解不太透彻. [1]以下这种情况是常见情况,会弹出“测试内容” <input type="button" v ...

  6. html5的小知识点小集合

      html5的小知识点小集合 html5知识   1.  Doctype作用?标准模式与兼容模式各有什么区别? (1).<!DOCTYPE>声明位于位于HTML文档中的第一行,处于< ...

  7. [BS] 小知识点总结-05

    [BS] 小知识点总结-05 1. 不论UIWindow的rootViewController是navC.tabBarC还是VC,也不管modalVC和rootVC中间隔着多少个VC,但是modal出 ...

  8. 一个关于echo的小知识点

    一个关于echo的小知识点     echo一个布尔值时,如果是true,输出1,而如果是false,将什么都不输出! 网上搜的一个解释: 对于数字类型来说,false 确实 是 0, 而对strin ...

  9. easyui中的combobox小知识点~~

    一直使用的easyui中,一些不为人知的小知识点,与君共勉: 1.combobox设置高度:使用panelHeight属性: 2.combobox本身自带“自动补全”功能,但是在浏览器中是有限制的,在 ...

随机推荐

  1. codeforces 755D. PolandBall and Polygon

    D. PolandBall and Polygon time limit per test 4 seconds memory limit per test 256 megabytes input st ...

  2. 简述Android系统内存不足时候,内存回收机制

    当Android系统的内存不足时,会根据以下的内存回收规则来回收内存: 1.先回收与其他Activity或Service/Intent Receiver无关的进程(即优先回收独立的Activity) ...

  3. doubango地址配置

    转自:http://wiki.sip2sip.info/projects/sip2sip/wiki/SipDeviceConfiguration SIP Device Configuration Th ...

  4. WinMerge文件编码设置

    http://blog.sina.com.cn/s/blog_7575fab10101o0na.html 系统默认是System codepage,我们要选用Custom codepage.值得注意的 ...

  5. Bootstrap入门(九)组件3:按钮组

    Bootstrap入门(九)组件3:按钮组   先引入本地的CSS文件和JS文件(注:1.bootstrap是需要jQuery支持的.2.需要在<body>当中添加) <link h ...

  6. Nancy简单实战之NancyMusicStore(二):打造首页

    前言 继上一篇搭建好项目之后,我们在这一篇中将把我们NancyMusicStore的首页打造出来. 布局 开始首页之前,我们要先为我们的整个应用添加一个通用的布局页面,WebForm中母版页的概念. ...

  7. CodeForces 456A

    Laptops Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Submit Sta ...

  8. linux脚本: 后台启动程序并重定向输出信息脚本

    后台启动程序并重定向输出信息脚本 新建文件mstart, 写入下面代码. #!/bin/bash $1 1>/etc/null 2>&1 & 说明 1>/etc/nu ...

  9. Form开发:字段关系-消息-快速编码-参数和系统变量

     1.字段关系  清除依赖字段:在挂LOV的名称字段的WHEN-VALIDATE-ITEM调用:app_field.clear_dependent_fields    设置字段依赖:在主字段的WHEN ...

  10. [css]《css揭秘》学习(二)-多重边框

    一.box-shadow属性 box-shadow除了生成投影,还可以用来生成边框:它接受第4个值作为扩张半径,0的x轴偏移+0的y轴偏移+0的模糊值+0的扩张半径,得到的显示效果和边框是一样的:但是 ...