JWColby
jwcolby at colbyconsulting.com
Sun Apr 1 12:09:38 CDT 2007
Well, I can see that the first is not what I want. It would seem, in a
multi-user environment that the second is also not what I want. The third I
am incapable of understanding well enough to evaluate it. What exactly does
scope mean in this context? If I use the last method, then I change my code
as follows? Scope_Identity() sounds suspiciously like a SQL Server
function, remember that this is VBA code running in my FE. Is VBA going to
understand a SQL statement "SELECT SCOPE_Identity()" or anything remotely
like it?
John W. Colby
Colby Consulting
www.ColbyConsulting.com
-----Original Message-----
From: dba-sqlserver-bounces at databaseadvisors.com
[mailto:dba-sqlserver-bounces at databaseadvisors.com] On Behalf Of Jim
Lawrence
Sent: Sunday, April 01, 2007 8:58 AM
To: dba-sqlserver at databaseadvisors.com
Subject: Re: [dba-SQLServer] Getting the PK of a SQL Server table
Hi John:
Check these scripts out:
<quote>
SELECT @@IDENTITY
This is everyone's favorite function, unchanged from earlier versions of SQL
Server. It returns the last IDENTITY value produced on a connection,
regardless of the table that produced the value, and regardless of the scope
of the statement that produced the value.
SELECT IDENT_CURRENT('tablename')
This new function returns the last IDENTITY value produced in a table,
regardless of the connection that created the value, and regardless of the
scope of the statement that produced the value.
SELECT SCOPE_IDENTITY()
This new function returns the last IDENTITY value produced on a connection
and by a statement in the same scope, regardless of the table that produced
the value.
</quote>
HTH
Jim
-----Original Message-----
From: dba-sqlserver-bounces at databaseadvisors.com
[mailto:dba-sqlserver-bounces at databaseadvisors.com] On Behalf Of JWColby
Sent: Sunday, April 01, 2007 5:13 AM
To: 'Access Developers discussion and problem solving';
dba-sqlserver at databaseadvisors.com
Subject: [dba-SQLServer] Getting the PK of a SQL Server table
In an Access database the PKID (autonumber) of a table is available the
instant after doing the insert or AddNew, so I would use code such as:
With RS
.Open "usystbllwsLog", gcnn, adOpenKeyset, adLockPessimistic
'build a logout record.
.AddNew
!LWSL_IDLWSU = mlngUserID
!LWSL_FE = CurrentProject.name
!LWSL_Login = blnLogIn
!LWSL_WorkstationID = CurrentMachineName()
mlngLogID = !LWSL_ID
.Update
.Close
End With
the code line
mlngLogID = !LWSL_ID
fails when used in SQL Server because the ID is not yet valid. How do I
work around this when the table is out in SQL Server?
John W. Colby
Colby Consulting
www.ColbyConsulting.com
_______________________________________________
dba-SQLServer mailing list
dba-SQLServer at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/dba-sqlserver
http://www.databaseadvisors.com
_______________________________________________
dba-SQLServer mailing list
dba-SQLServer at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/dba-sqlserver
http://www.databaseadvisors.com