Toon posts:

[MSSQL] ROWGUID teruggeven **

Pagina: 1
Acties:

Verwijderd

Topicstarter
Yo, Dit is niet koel, ik ben bezig met een simpele database te maken, maar met de optie om er toch wel rowguid's in te mikken alleen ik zit met het probleem dat ik na het insterten heel graag de exacte net toegevoegde rowguid terug wil hebben.

Heeft iemand een idee om dit zo slim mogelijk te doen.
select top 1 From bla bla is een manier

Stored procedure al geprobeert als volgt

SET NOCOUNT ON
INSERT INTO dbo.inv_Inventory (Cus_ID, Location_ID) VALUES ('{96584B4B-F73C-4A81-9A01-4B8D7A10E696}','{FE972FA5-94A8-4EF2-ABF5-A807FEEFA461})
SELECT SCOPE_IDENTITY() AS NewID
SET NOCOUNT OFF

SET @Cus_ID = SCOPE_IDENTITY()
Insert Blabla


Maar geen van de opties komt de laast opgegeven rowGuid uit,
Dump van de create statement

code:
1
2
3
4
5
6
7
8
9
10
11
CREATE TABLE [inv_Inventory] (
    [Inv_ID]  uniqueidentifier ROWGUIDCOL  NOT NULL CONSTRAINT          
                [DF_inv_Inventory_Inv_ID] DEFAULT (newid()),
    [Cus_ID] [uniqueidentifier] NOT NULL ,
    [location_ID] [uniqueidentifier] NOT NULL ,
    CONSTRAINT [PK_inv_Inventory] PRIMARY KEY  CLUSTERED 
    (
        [Inv_ID]
    )  ON [PRIMARY] 
) ON [PRIMARY]
GO



Heeft iemand tips voor mij om in ASP niet ASP.net na het insterten van gegevens de laaste guid terug te krijgen.

THanx

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 17:50

gorgi_19

Kruimeltjes zijn weer op :9

Dit heeft niets met ASP of ASP.Net te maken, dus deze uit de titel gesloopt. Eerder SQL Server algemeen.. :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 23:39

mulder

ik spuug op het trottoir

Je moet de GUID in je stored procedure genereren met NEWID() en die na de insert selecteren.

oogjes open, snaveltjes dicht


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
@@Identity :?

Of mis ik iets?
Ik neem aan dat je de default value voor je id column op NewID() hebt gezet en de column ook hebt aangegeven als Identity?

[ Voor 18% gewijzigd door RobIII op 04-05-2004 16:55 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Don Facundo schreef op 04 mei 2004 @ 16:49:
Je moet de GUID in je stored procedure genereren met NEWID() en die na de insert selecteren.
code:
1
2
3
4
5
6
SET @Cus_ID = NEWID()

INSERT INTO dbo.inv_Inventory (Inv_ID,Cus_ID, Location_ID) VALUES (@Cus_ID, 
'{96584B4B-F73C-4A81-9A01-4B8D7A10E696}','{FE972FA5-94A8-4EF2-ABF5-A807FEEFA461}')

Insert Blabla


Dit zou moeten werken ....
@Cus_id is wel een rare variable, aangezien die de inhoud heeft van Inv_id ?? :?

[ Voor 18% gewijzigd door LuCarD op 04-05-2004 17:04 . Reden: quoteje vergeten ]

Programmer - an organism that turns coffee into software.


  • cameodski
  • Registratie: Augustus 2002
  • Laatst online: 06-11-2023
RobIII schreef op 04 mei 2004 @ 16:54:
@@Identity :?

Of mis ik iets?
Ik neem aan dat je de default value voor je id column op NewID() hebt gezet en de column ook hebt aangegeven als Identity?
Je mist inderdaad iets ;)
NEWID() geeft een uniqueidentifier terug ipv een ID. Handig bedacht van MS.
Overigens kun je vanaf MSSQL 2000 beter SCOPE_IDENTITY gebruiken, omdat eventuele inserts in triggers je dan niet in de weg zitten.
Verwijderd schreef op 04 mei 2004 @ 16:46:
Heeft iemand tips voor mij om in ASP niet ASP.net na het insterten van gegevens de laaste guid terug te krijgen.

THanx
Eventueel zou je nog kunnen overwegen om een identity kolom toe te voegen. Dan kun je het record wel terugvinden met SCOPE_IDENTITY().

[ Voor 27% gewijzigd door cameodski op 04-05-2004 17:46 ]

Never underestimate the power of


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:32
cameodski schreef op 04 mei 2004 @ 17:44:
[...]


Eventueel zou je nog kunnen overwegen om een identity kolom toe te voegen. Dan kun je het record wel terugvinden met SCOPE_IDENTITY().
Als de TS echt een GUID wil gebruiken, dan denk ik dat het beter aangepakt wordt zoals hier al beschreven werd:

- geen DEFAULT waarde gebruiken voor dat veld
- het nieuwe ID bepalen voordat het record geinserted wordt
- het nieuwe record inserten met het net gegenereerde ID

Dat kan je dus in één SP doen.

https://fgheysels.github.io/


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Ik heb eigenlijk altijd begrepen dat ROWGUID alleen voor replicatiedoeleinden was en niet als PK voor een kolom. Of is dat onzin?

Oops! Google Chrome could not find www.rijks%20museum.nl


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:32
P_de_B schreef op 05 mei 2004 @ 08:54:
Ik heb eigenlijk altijd begrepen dat ROWGUID alleen voor replicatiedoeleinden was en niet als PK voor een kolom. Of is dat onzin?
Dat dacht ik ook.
Een primary key hoeft nl. enkel uniek te zijn binnen een tabel. Een GUID is dus een beetje 'overkill'.

[ Voor 18% gewijzigd door whoami op 05-05-2004 08:56 ]

https://fgheysels.github.io/

Pagina: 1