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.
|