sqlserver查询出自增字段的下一个值
来源:互联网 发布:spss for mac 23 编辑:程序博客网 时间:2024/05/01 05:26
通常我们在设计表的时候,会加一个排序字段,为的是方便数据的排序,比如上移、下移。如果在给数据表插入数据的时候,想要使这个字段的默认值跟数据库的主键(主键是自增长)一致的话,该怎么弄呢?先插入,然后取出刚刚插入的数据的主键,然后对这行数据更新,将排序的值更新为主键的值?理论上这样做也能实现,但是如果并发量大的情况这样做就不划算了。这时候我们可以用到一个sql的函数ident_current,如下:
INSERT INTO tab (c1,c2,c3) values ('aa','bb',ident_current('tab'))
这个sql 命令是对tab表插入3列 分别是c1 c2 c3,对应的值分别是aa bb 和ident_current('tab'),ident_current('tab') 取出的就是tab表的主键.
一个函数,简简单单的就完成了开篇是分析的逻辑.
sql server 2005 帮助文档参考:
IDENT_CURRENT 类似于 SQL Server 2000 标识函数 SCOPE_IDENTITY 和 @@IDENTITY。这三个函数都返回最后生成的标识值。但是,上述每个函数中定义的“最后”的作用域和会话有所不同。
IDENT_CURRENT 返回为某个会话和用域中的指定表生成的最新标识值。
IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。IDENT_CURRENT 返回为任何会话和作用域中的特定表所生成的值
@@IDENTITY 返回为跨所有作用域的当前会话中的某个表生成的最新标识值。
SCOPE_IDENTITY 返回为当前会话和当前作用域中的某个表生成的最新标识值。
在空表中调用 IDENT_CURRENT 函数时,此函数将返回 NULL。
如果语句和事务失败,它们会更改表的当前标识,从而使标识列中的值出现不连贯现象。即使未提交试图向表中插入值的事务,也永远无法回滚标识值。例如,如果因 IGNORE_DUP_KEY 冲突而导致 INSERT 语句失败,表的当前标识值仍然会增加。
INSERT INTO tab (c1,c2,c3) values ('aa','bb',ident_current('tab'))
这个sql 命令是对tab表插入3列 分别是c1 c2 c3,对应的值分别是aa bb 和ident_current('tab'),ident_current('tab') 取出的就是tab表的主键.
一个函数,简简单单的就完成了开篇是分析的逻辑.
sql server 2005 帮助文档参考:
IDENT_CURRENT 类似于 SQL Server 2000 标识函数 SCOPE_IDENTITY 和 @@IDENTITY。这三个函数都返回最后生成的标识值。但是,上述每个函数中定义的“最后”的作用域和会话有所不同。
IDENT_CURRENT 返回为某个会话和用域中的指定表生成的最新标识值。
IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。IDENT_CURRENT 返回为任何会话和作用域中的特定表所生成的值
@@IDENTITY 返回为跨所有作用域的当前会话中的某个表生成的最新标识值。
SCOPE_IDENTITY 返回为当前会话和当前作用域中的某个表生成的最新标识值。
在空表中调用 IDENT_CURRENT 函数时,此函数将返回 NULL。
如果语句和事务失败,它们会更改表的当前标识,从而使标识列中的值出现不连贯现象。即使未提交试图向表中插入值的事务,也永远无法回滚标识值。例如,如果因 IGNORE_DUP_KEY 冲突而导致 INSERT 语句失败,表的当前标识值仍然会增加。
0 0
- sqlserver查询出自增字段的下一个值
- MS SQLServer 如何查询 空值的字段?
- sqlserver查询出某个表当前自增字段的最新值
- SqlServer字段说明查询
- sqlserver 过滤掉某些字段查询剩余字段的方法
- sqlserver中查询表,查询表的字段方式
- Oracle查询序列的下一个值
- 【学习笔记】c#连接及查询sqlserver数据库,并取出相应字段的值的方法
- SQLSERVER查询整个数据库中某个特定值所在的表和字段的方法
- sqlserver中将查询出来的一个字段的所有值用逗号进行拼接
- sqlserver修改查询出来数据的前几行的字段内容
- SQLserver动态查询(表名或字段动态),并且获取想得到的返回值结果execsp_execute
- SqlServer用select查询遇到Null值字段的处理替换方法(实例)
- 关于SqlServer多表根据字段值模糊匹配来连接查询的解决方法
- SQLServer查询所有表所有字段包含xx的信息
- SQLServer查询所有表所有字段包含xx的信息
- sqlserver中字段为null的查询方法
- SQLServer关于类似于联合主键的字段查询
- 新品上市调查方案(2)-测试结果
- Hdu1166 step5.3.2敌兵布阵(简单的树状数组)
- Node.js入门
- android手机调试时不能打印Logcat日志信息
- Android滑动菜单特效实现,仿人人客户端侧滑效果,史上最简单的侧滑实现
- sqlserver查询出自增字段的下一个值
- OpenGL 超级宝典(第五版) 源代码的问题(一)
- 关于KICA的工具箱或者资料吗
- 手机网站和webapp开发默认页面
- hdu1213How Many Tables 基础题
- 获取手机型号和系统版本号
- 中断门 gate/DPL/CPL
- 我们之所以
- java web MVC的实现(JSP+Servlet+javaBean)