select @@identity的应用(得到刚插入数据的ID)
来源:刑发明的空间 发布时间:2009-09-10 11:24:00
使用select @@identity 得到刚插入数据的ID
1.适用于所有 ADO 版本
<%Dim loConn, lsSQL, loRs
Set loConn = CreateObject("ADODB.Connection")
' 建立数据库连结
loConn.Open "Provider=SQLOLEDB; Data Source=JACKIE; Initial Catalog=pubs; User ID=sa; Password= "
'新增一笔数据到数据库内
lsSQL = "INSERT INTO tMembers (MemberName) VALUES ('Manohar')"
' 执行 SQL 叙述
loConn.Execute(lsSQL)
' 透过 @@IDENTITY 函数取得最后一笔数据的 Identity 字段值,并传给 IIID 变量
lsSQL = "SELECT @@IDENTITY AS NewID"
Set loRs = loConn.Execute(lsSQL)
llID = loRs.Fields("NewID").value
' 关闭数据库连结
loConn.Close()
Set loConn = Nothing%>
2.适用于 ADO 2.0 以后的版本
<%
Dim loConn, lsSQL, loRs
Set loConn = CreateObject("ADODB.Connection")
' 建立数据库连结
loConn.Open "Provider=SQLOLEDB; Data Source=JACKIE; Initial Catalog=pubs; User ID=sa; Password= "'
'新增一笔数据到数据库内,并随即取得 Identity 字段值
lsSQL = "INSERT INTO tMembers (MemberName) VALUES ('Manohar');" &_
"SELECT @@IDENTITY AS NewID;"
' 执行 SQL 叙述
Set loRs = loConn.Execute(lsSQL)
' 利用数据集合对象中的 NextRecordset() 方法将 SQL 叙述中的第二个叙述执行结果传给loRs
' 变数
Set loRs = loRs.NextRecordSet() '这一条很重要,否则得不到想要的结果!!!!!!
' 将最后一笔数据的 Identity 字段值传给 IIID 变量
llID = loRs.Fields("NewID").value
' 关闭数据库连结
loConn.Close()
Set loConn = Nothing
%>
3.适用于所有 ADO 版本
Dim loConn, lsSQL, loRs
Set loConn = CreateObject("ADODB.Connection")
' 建立数据库连结
loConn.Open("DSN=myDSN;UID=something;PWD=Something;")
' 新增一笔数据到数据库并取得取得最后一笔数据的 Identity 字段值
lsSQL = "SET NOCOUNT ON;" &_
"INSERT INTO tMembers (MemberName) VALUES ('Manohar');" &_
"SELECT @@IDENTITY AS NewID;"
' 执行 SQL 叙述
Set loRs = loConn.Execute(lsSQL)
' 将 Identity 字段值传给 IIID 变量
llID = loRs.Fields("NewID").value
' 关闭数据库连结
loConn.Close()
Set loConn = Nothing
第二种方法跟第三种方法很像,只是在 SQL 叙述中多定义了一行 SET NOCOUNT ON,什么叫做 SET NOCOUNT ON 呢?在 SQL 叙述中不会传回数据集合对象的叙述 (例如:Insert, Delete, Update......等等)都会被 SET NOCOUNT ON 略过不计,只有那些会传回数据集合的叙述才会被计算,在第三个范例中只有 "SELECT @@IDENTITY AS NewID; 这一段叙述才会被视做数据集合并被计算,于是乎我们可以以第三个方法延伸出第四种方式。
4.
<%
'一次新增两笔数据进数据库,并取得个别的 Identity 字段值
lsSQL = "SET NOCOUNT ON;" &_
"INSERT INTO tMembers (MemberName) VALUES ('John'); " &_
"SELECT @@IDENTITY AS NewID;" &_
"INSERT INTO tMembers (MemberName) VALUES ('Jane'); " &_
"SELECT @@IDENTITY AS NewID;"
' 执行 SQL 叙述
Set loRs = loConn.Execute(lsSQL)
' 取得第一笔资料的 Identity 并传给IIID1 变数
llID1 = loRs.Fields("NewID").value
' 取得第二笔资料的 Identity 并传给IIID1 变数
Set loRs = loRs.NextRecordSet()
llID2 = loRs.Fields("NewID").value


猜你喜欢
- iniconf博主前两天在写一个小的go语言项目,想找一个读取ini格式配置和的三方库,在网上找了一圈感觉都不是很好用, 使用起来非常的奇怪
- BP算法是适用于多层神经网络的一种算法,它是建立在梯度下降法的基础上的。本文着重推导怎样利用梯度下降法来minimise Loss Func
- 颜色的变化跟人类的智慧一样,是无穷的,每个阶段都会有流行的色彩,有属于一个时代的颜色!WEB2.0是一个概念,它宣扬,定位了一些东西,以用户
- 我们的规范到底做到哪一步算是发挥良好的价值?其实一件事物我们理解错根本目的会导致出大不一样的结果,直接反应在设计师到底要体现什么的价值。想想
- 本文实例讲述了原生JS实现Ajax通过POST方式与PHP进行交互的方法。分享给大家供大家参考,具体如下:一、代码conn.php<?
- # 查看下centos7.6上的python版本[root@registry ~]# cat /etc/redhat-releaseLinu
- 本文实例讲述了java使用正则表达式判断邮箱格式是否正确的方法。分享给大家供大家参考。具体如下:import java.io.*;publi
- 本文实例讲述了Python面向对象程序设计之继承与多继承。分享给大家供大家参考,具体如下:1. 继承在C++和Java中,使用继承时,子类的
- 先给大家介绍下Python 字符串前面加u,r,b,f的含义(字符串前缀)1、字符串前加 u例:u"我是含有中文字符组成的字符串。
- 我就废话不多说了,直接上代码吧!# -*- coding: utf-8 -*-"""Created on Sa
- 有很多对于PHP的抱怨,甚至这些抱怨也出自很多聪明的人。当Jeff Atwood写下对于PHP的另一篇抱怨文章之后,我思考了下PHP的好的方
- Json简介:Json,全名 JavaScript Object Notation,是一种轻量级的数据交换格式。Json最广泛的应用是作为A
- 一、前言对于行锁和表锁的含义区别,在面试中应该是高频出现的,我们应该对MySQL中的锁有一个系统的认识,更详细的需要自行查阅资料,本篇为概括
- 一、继承与java的继承不同python支持多继承,如Person类同时继承Animal类和Species类可以这样写:class Anim
- Oracle生成单据编号存储过程,在做订单类似的系统都可能会存在订单编号不重复,或是流水号按日,按年,按月进行重新编号。可以参考以下存储过程
- 具体代码如下所示:#!/usr/bin/python# coding=utf-8from ftplib import FTPimport t
- 总结类的定义很久以前,语言都是面向过程的,经过计算机科学家的探索,出现了面向对象。面向对象可以解释生活中很多东西。比如人,人就是个对象,有参
- 前言因为自已平时会把一个常用到逻辑写成一个工具python脚本,像关于时间字符串处理,像关于路径和文件夹遍历什么的工具。每一次新建一个项目的
- 1、字符串拼接通过+运算符现有字符串码农飞哥好,,要求将字符串码农飞哥牛逼拼接到其后面,生成新的字符串码农飞哥好,码农飞哥牛逼举个例子:st
- jquery作为一款高质量的框架被大多web开发者所推崇。jquery也的确是一款伟大的产品,在实际开发中明显提高了效率。但是任何产品并不是