Vad är vitsen med det?
Så man slipper göra en roundtrip till servern om man ska lägga in först 1 rad i parent tabellen och lite rader i child tabellen baserat på parenttabellens ID.
IDENTITY:
DECLARE @huvudtabellID int
DECLARE @huvudinfo varchar(255)
DECLARE @chilcinfo varchar(255)
SET @huvudinfo='test'
SET @childinfo='test'
INSERT INTO huvudtabell (info) VALUES (@huvudinfo)
SET @huvudtabellID=SCOPE_IDENTITY()
INSERT INTO childtabell (huvudtabellID,info) VALUES (@huvudtabellID,@childinfo)
Ja, oftast blir det värre än så , många returnerar ID:et ända tillbaka till sin webapplikation också genom ExecuteScalar() och liknande vilket är ännu sämre.
Men med GUID så struntar man i att låta servern generera PRIMARY KEYS utan man skapar dom själv på klientsidan. checka denna:
GUID:
DECLARE @huvudtabellID UNIQUEIDENTIFIER
DECLARE @childtabellID UNIQUEIDENTIFIER
DECLARE @huvudinfo varchar(255)
DECLARE @chilcinfo varchar(255)
SET @huvudtabellID ='1d5c0f00-155f-4a40-a926-b0ca073a266d'
SET @childtabellID ='3e794cc0-d058-45d5-81f3-e9fc64a199bc'
SET @huvudinfo='test'
SET @childinfo='test'
INSERT INTO huvudtabell (huvudtabellID,info) VALUES (@huvudinfo)
INSERT INTO childtabell (childtabellID,huvudtabellID,info) VALUES (@childtabellID,@huvudtabellID,@childinfo)
Och man kan även låta servern generera GUID:en också med NEWID() om man vill det. men men Ja, jag säger varken bu eller bä. IDENTITY känns göttast fortfarande , men säger någon att GUID är the shit så är det väl lika bra att gå över :/ Och en annan sak, när man skapar en logincontrol i VS 2005 så autogenereras en fet databas med users,members tabeller, och alla dessa använder GUID:s så jag undrar om inte GUID:s börjar bli the way to go :/
här är en artikel om GUID:s:
http://www.sqlservercentral.com/columnists/awarren/usinguniqueindentifierinsteadofidentity.asp
GUID fick jag höra att det ska vara en nödvändighet vid replikation, men varför det skulle vara så och om det faktiskt _är_ så vet jag inte.
Menar du när man ska kopiera en databas och flytta över den till en annan server?