惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Proofpoint News Feed
博客园_首页
WordPress大学
WordPress大学
大猫的无限游戏
大猫的无限游戏
有赞技术团队
有赞技术团队
阮一峰的网络日志
阮一峰的网络日志
Hugging Face - Blog
Hugging Face - Blog
博客园 - 【当耐特】
酷 壳 – CoolShell
酷 壳 – CoolShell
Y
Y Combinator Blog
Vercel News
Vercel News
The GitHub Blog
The GitHub Blog
T
The Blog of Author Tim Ferriss
云风的 BLOG
云风的 BLOG
博客园 - 司徒正美
Engineering at Meta
Engineering at Meta
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
J
Java Code Geeks
Stack Overflow Blog
Stack Overflow Blog
N
Netflix TechBlog - Medium
Martin Fowler
Martin Fowler
宝玉的分享
宝玉的分享
G
Google Developers Blog
Last Week in AI
Last Week in AI

博客园 - sobaby

用vue.js重构订单计算页面 用vue.js实现购物车功能 一步步实现自己的ORM(五) 一步步实现自己的ORM(四) 将Object转换成Dictionary方法 一步步实现自己的ORM(三) 一步步实现自己的ORM(二) 一步步实现自己的ORM(一) 修复Windows XP服务扩展视图显示空白 ASP.NET MVC :MVC页面验证与授权 一起学习MVC(4)-entity SQL语句 一起学习MVC(3)-搭建项目 一起学习MVC(2)-数据库设计 一起学习MVC(1)-搭建开发环境 什么是工作流 学习WWF中 关于回调函数 ASP.net:水晶报表的5种表格设计模式 ASP.NET 安全认证(一):如何运用 Form 表单认证
Sql Server的两个小技巧
sobaby · 2017-05-31 · via 博客园 - sobaby

创建表结构 

CREATE TABLE test(
    [id] int IDENTITY(1,1) NOT NULL PRIMARY KEY,
    [name] nvarchar(50) COLLATE Chinese_PRC_CI_AS NULL,
   createdTime DATETIME DEFAULT GETDATE()
) 

使用output获得自增ID值

没使用output前的写法,用Score_Identity函数获取自增值

INSERT INTO dbo.test ( name ) VALUES ( N'测试数据')
SELECT SCOPE_IDENTITY();

结果如下

使用output获得自增值,请仔细看 output写在 values之前

INSERT INTO dbo.test ( name ) OUTPUT Inserted.id
 VALUES ( N'测试数据') 

输出结果:

返回多个字段,包括默认getdate()函数

INSERT INTO dbo.test ( name ) OUTPUT Inserted.id,Inserted.name,Inserted.createdTime
 VALUES ( N'测试数据') 

输出结果:

用offset fetch实现分页功能

用过mysql的同学对于分页语法特别简单,只需要用limit就可以完成分页。而在SQL SERVER里则需要用子查询完成分页,不过现在SQL SERVER也支持简单的分页,那就是用offset .. fetch来完成,不过要求SQL SERVER版本在2012及更高版本啊。

使用Row_Number分页语法如下:

 SELECT * FROM (SELECT *,ROW_NUMBER () OVER (ORDER BY id)  AS rn FROM
 dbo.test)  AS t
 WHERE rn BETWEEN 11 AND 20

输出结果

使用offset分页,类似于linq里的skip + take函数。

基本语法,offset 跳过的行数 rows Fetch Next 抓取的行数 rows only

SELECT * FROM dbo.test ORDER BY id OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY

输出结果