一个ID引起的血案
来源:互联网 发布:php自定义加密 编辑:程序博客网 时间:2024/04/29 19:45
最近用ASP写程序时,刚开始支持的数据库是ACCESS,程序里有一段代码是往数据库里新添一条记录,方法为先建立一个recordset,然后用addnew和update方法来实现数据新增。addnew之后便能取得新增记录的ID号。
后来程序移植到服务器上时,由于服务器安装的是SQL SERVER 2000,未安装ACCESS,所以不得不把ACCESS数据库转换为SQL SERVER数据库。转换完之后运行发现,在新增记录时,用recordset addnew之后取不到新增记录的ID号,update之后同样取不到ID号。那个郁闷啊,哦使搞的哦。
最后发现数据库里有一个参数@@identity,它的作用是返回最后插入的标识值。用select @@identity语句即可获得最后新增这条记录的ID号。有人可能会问,如果两个客户端同时对服务器的数据库执行新增记录的操作,取得的值会是多少?
对此,作了一个试验:服务器数据库有一表Test,里边有一条记录,ID=1,首先客户端[马云]新添了一条记录,此时Test表新加入的记录ID值为2,select @@identity值显示也为2;然后客户端[比尔·盖茨]新添了一条记录,Test表新增记录的ID值为3,select @@identity值显示为3。这个时候[马云]再执行select @@identity,返回值仍旧是2,令[马云]大吃一惊,令[比尔·盖茨]大跌眼镜!没想到select @@identity只与当前产生的会话有关系,在不同客户端出现并发操作时不会影响某个客户端的@@identity值。
- 一个ID引起的血案
- 一个笔误引起的血案
- 一个引号引起的血案
- 一个斜杠引起的血案
- 一个变量定义引起的血案
- 【jsp勘误】一个return引起的血案
- 一个字符编码引起的血案
- 房价引起的血案
- 一句话引起的血案
- 一个因全局变量引起的DLL崩溃引发的血案
- (转贴)一位网友评《一个馒头引起的血案》
- [转载]一个简单问题引起的“血案”(白云黄鹤)
- 一个由PROGUARD与FASTJSON引起的血案
- 死循环引起的血案
- 一个引号引起的血案,ORACLE SQL 分页语句的错误
- 一个空格引起的血案,记在servlet和mysql使用字符串的一次经验
- 一个大对象引起的血案,GC的踩坑实录
- 一个由Activity launchMode="singleTask"属性引起的血案(Android)
- 如何将xml格式的字符串结合xsl文件转换为html 格式字符串输出
- 添加host
- 今年的SD2.0大会一定很精彩
- setsockopt的各种使用
- “美丽心灵”纳什诺贝尔经济学奖来之不易
- 一个ID引起的血案
- C#数组
- SQL的详细语法介绍——对于学习数据库最基础知识一
- 请在使用前,初始化它
- juniper ssg5端口映射
- 做到专业?还是再努力些做到职业?
- 关于利用DataSet存取SQL Server中的二进制文件
- 需求分析类文档模板
- Hibernate 多对多的映射关系(many-to-many)