
Inline adoc files when they are included exactly once. Also fix language tags because this inlining gives us better information on what language the code is written in.
42 lines
901 B
Plaintext
42 lines
901 B
Plaintext
== Why is this an issue?
|
|
|
|
``++@@IDENTITY++`` returns the last identity column value created on a connection, regardless of the scope. That means it could return the last identity value you produced, or it could return a value generated by a user defined function or trigger, possibly one fired because of your insert. In order to access the last identity value created in your scope, use ``++SCOPE_IDENTITY()++`` instead.
|
|
|
|
|
|
=== Noncompliant code example
|
|
|
|
[source,sql]
|
|
----
|
|
INSERT ...
|
|
|
|
SET @id = @@IDENTITY -- Noncompliant
|
|
----
|
|
|
|
|
|
=== Compliant solution
|
|
|
|
[source,sql]
|
|
----
|
|
INSERT ...
|
|
|
|
SET @id = SCOPE_IDENTITY()
|
|
----
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
=== Message
|
|
|
|
Use "SCOPE_IDENTITY()" to be sure you're accessing the last id you created on the connection.
|
|
|
|
|
|
=== Highlighting
|
|
|
|
``++@@IDENTITY++``
|
|
|
|
|
|
endif::env-github,rspecator-view[]
|