Entitetens enhedskode er som følger:
Indsættelseskoden er som følger:
Vi sætter kun værdien af navn og tildeler ikke en værdi til id, lad os se på, hvad den genererede SQL-sætning er??? , som følger:
exec sp_executesql N'DECLAR @generated_keys table([Id] uniqueidentifier) INSERT [dbo]. [TestTab] ([Navn]) OUTPUT indsat. [id] IND @generated_keys VÆRDIER (@0) VÆLG t.[ID] FRA @generated_keys SOM G JOIN [dbo]. [TestTab] AS T ON g.[Id] = t.[Id] HVOR @@ROWCOUNT > 0',N'@0 nvarchar(32)', @0=N' arkitektwww.itsvse.com'
Vi fandt ud af, at INSERT TestTab-tabellen kun indsætter Navn-feltet, har Id en standardværdi??? Vi fandt ud af, at
ef har hjulpet mig med at sætte standardværditypen for ID-primærnøglen, standardværdien eller bindingen "(newsequentialid())", og brugt newsequentialid()-funktionen, som introduceres således:
1.: Den største fordel ved newsequentialid-funktionen i forhold til newid-funktionen er, at hvis du opretter et indeks på et UNIQUEIDENTIFIER-felt, er den nye værdi, der genereres med newid, ikke fast, så den nye værdi får ændringen i indeks B+-træet til at være tilfældig. Hvis den nye værdi, der produceres af newsequentialiden, er regulær, så er ændringen af indeks B+-træet regulær. Regelmæssighed og uregelmæssighed fører til forbedringer i præstationen.
2: UNIQUEIDENTIFIER er en meget bekvem ting at gøre som primærnøgle, hvilket har uerstattelige fordele i operationer som datasammensmeltning Men på grund af decentraliseringen af almindelige GUID'er, hvis primærnøglen tilføjes til et klyngeindeks, vil det være meget mindre effektivt, når poster indsættes
SQL SERVER 2005 tilføjer en ny funktion kaldet NEWSEQUENTIALID, som MSDN forklarer: Opret en GUID på den angivne maskine, som er større end nogen GUID, der tidligere er genereret af funktionen. NEWSEQUENTIALID() kan ikke refereres i forespørgslen.
Bemærk: Det betyder, at den kun kan bruges som DEFAULT VALUE for en databasekolonne og ikke kan udføre udsagn som SELECT NEWSEQUENTIALID(). GUID'en genereret af NEWSEQUENTIALID() er unik i den pågældende computer kun, hvis computeren ikke har et netværkskort.
Bemærk: Denne sætning er forkert, det burde kun være, at når computeren har et netværkskort, er den genererede GUID unik i verden Du kan bruge NEWSEQUENTIALID() til at generere en GUID for at reducere sidekonkurrence på bladniveau-indekset.
|