Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 30236|Svare: 1

[Kilde] EF setter primærnøkkel-ID til guid selvvoksende type

[Kopier lenke]
Publisert på 04.11.2016 13:27:38 | | | |


Entitetens enhetskode er som følger:



Innsettingskoden er som følger:



Vi setter bare verdien av navn og tildeler ikke en verdi til id, la oss se på hva den genererte SQL-setningen er??? , som følger:

exec sp_executesql N'DECLARE @generated_keys table([Id] uniqueidentifier)
SETT inn [dbo]. [TestTab] ([Navn])
OUTPUT satt inn. [ID] INN @generated_keys
VERDIER (@0)
VELG 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 fant ut at INSERT TestTab-tabellen kun setter inn Navn-feltet, har Id en standardverdi??? Vi fant ut at

ef har hjulpet meg med å sette standardverditypen for ID-primærnøkkelen, standardverdien eller bindingen "(newsequentialid())", og brukt newsequentialid()-funksjonen, som introduseres slik:


1.: Den største fordelen med newsequentialid-funksjonen sammenlignet med newid-funksjonen er at hvis du lager en indeks på et UNIQUEIDENTIFIER-felt, er den nye verdien generert med newid ikke fast, så den nye verdien gjør at endringen i indeks B+-treet blir tilfeldig. Hvis den nye verdien produsert av den nye sequentialiden er regulær, er endringen i indeks B+-treet regulær. Regelmessighet og uregelmessighet fører til ytelsesforbedringer.

2: UNIQUEIDENTIFIER er en veldig praktisk ting å gjøre som primærnøkkel, som har uerstattelige fordeler i operasjoner som datasammenslåing
Men på grunn av desentraliseringen av vanlige GUID-er, hvis primærnøkkelen legges til en klynget indeks, vil det være mye mindre effektivt å sette inn poster

SQL SERVER 2005 legger til en ny funksjon kalt NEWSEQUENTIALID, som MSDN forklarer:
Lag en GUID på den angitte maskinen som er større enn noen GUID som tidligere er generert av funksjonen.
NEWSEQUENTIALID() kan ikke refereres i spørringen.
Merk: Dette betyr at den kun kan brukes som DEFAULT VALUE for en databasekolonne, og ikke kan utføre setninger som SELECT NEWSEQUENTIALID().
GUID-en generert av NEWSEQUENTIALID() er unik i den aktuelle datamaskinen bare hvis datamaskinen ikke har et nettverkskort.
Merk: Denne setningen er feil, det bør være slik at bare når datamaskinen har et nettverkskort, er den genererte GUID-en unik i verden
Du kan bruke NEWSEQUENTIALID() for å generere en GUID for å redusere sidekonkurranse på bladnivåindeksen.





Foregående:EasyUI Control Tab legger til en bryterfunksjon
Neste:c#/.Net samlingsarray lag for lag-verdi
Publisert på 01.02.2018 10:43:26 |
Ja, takk! Utleierens ferdigheter er veldig vanskelige! Hardt
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com