how to get inserted sequential uniqueidentifier

2019-07-27 09:02发布

问题:

my table looks like this:

create table foos(
id uniqueidentifier primary KEY DEFAULT (newsequentialid()),
..
)

so the id is sequentially generated automatically, I'm not setting it

how do I get it's value after the insert ? (with identity I was doing insert ... select @@identity)

回答1:

Returning the NewSequentialID() after Insert using the Output Clause

The basic idea:

create table foos(id uniqueidentifier primary KEY DEFAULT (newsequentialid()))

declare @Ids table(id uniqueidentifier)

insert foos
output inserted.id into @Ids
default values

select *
from @Ids


回答2:

You would use the other data that got inserted with the id to select it out again. So where you have the .. you would have:

SELECT id
WHERE ..

which would return the id