首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

关于sqlserver2008列的自动增长解决方法

2012-09-03 
关于sqlserver2008列的自动增长有几种方式可以设置列的自动增长?除了IDENTITY(1,1)之外,还有别的吗?最重要

关于sqlserver2008列的自动增长
有几种方式可以设置列的自动增长?除了IDENTITY(1,1)之外,还有别的吗?

最重要的是:insert一条数据以后,怎么返回这个字段的值?
我看到了好几种,不知道哪一个最安全、准确:
IDENT_CURRENT 函数返回为任何会话和任何作用域中的特定表最后生成的标识值。
@@IDENTITY 返回为当前会话的所有作用域中的任何表最后生成的标识值。
SCOPE_IDENTITY 返回为当前会话和当前作用域中的任何表最后生成的标识值。


谢谢大家!

[解决办法]
1.一般来说,使用identity(int,1,1)或手工设置自增列.

2.如果是多用户操作,哪个都不安全.所以我从来不用所谓的自增列.

[解决办法]
1. IDENTITY(1,1)可以设置自动增长. NEWSEQUENTIALID ()创建大于先前通过该函数生成的任何 GUID 的 GUID

2. 你插入一条数据以后,马上用 SCOPE_IDENTITY来获取插入的值.
[解决办法]
SCOPE_IDENTITY 返回为当前会话和当前作用域中的任何表最后生成的标识值。

这个得到刚刚插入的自增值

其他的也应该会有其他用处
[解决办法]
没有吧。。。
[解决办法]

探讨
SCOPE_IDENTITY 返回为当前会话和当前作用域中的任何表最后生成的标识值。
100%安全么

[解决办法]
安全是指返回的值有可能不是当时增加的那条记录的值是不?
如果是这样的话,那还真不安全。除非提高数据库的隔离等级。或者自己写一个自动增长列了。
[解决办法]
IDENTITY(1,1)
[解决办法]
自动生成标识列

[解决办法]
探讨
引用:

安全是指返回的值有可能不是当时增加的那条记录的值是不?
如果是这样的话,那还真不安全。除非提高数据库的隔离等级。或者自己写一个自动增长列了。
我说的安全就是这个意思。当很多用户同时插入的时候,返回的值有没有可能不是当时增加的那条记录的值。如果插入和返回值都是放在一个存储过程里的,这样是不是100%的安全?

[解决办法]
探讨
引用:
SCOPE_IDENTITY 返回为当前会话和当前作用域中的任何表最后生成的标识值。
100%安全么

学习了,最近也想学习下这个,但是时间安排不过来.先复制下来研究下,想把mysql的数据库 装饰设计交流论坛转换到mssql 

[解决办法]
学习了。。。。。。。。。。。

热点排行