Entitetens enhetskod är följande:
Infogningskoden är följande:
Vi sätter bara värdet på namn och tilldelar inget värde till id, låt oss titta på vad den genererade SQL-satsen är??? , enligt följande:
exec sp_executesql N'DECLAR @generated_keys tabell([Id] uniqueidentifier) INSERT [dbo]. [TestTab] ([Namn]) OUTPUT insatt. [ID] IN @generated_keys VÄRDEN (@0) VÄLJ t.[Id] FRÅN @generated_keys SOM G JOIN [dbo]. [TestTab] AS t ON g.[Id] = t.[Id] DÄR @@ROWCOUNT > 0',N'@0 nvarchar(32)', @0=N' arkitektwww.itsvse.com'
Vi upptäckte att INSERT TestTab-tabellen bara infogar Name-fältet, har Id ett standardvärde??? Vi hittade att
ef har hjälpt mig att sätta standardvärdestypen för ID:ts primärnyckel, standardvärdet eller bindningen "(newsequentialid())", och använt funktionen newsequentialid(), som introduceras enligt följande:
1.: Den största fördelen med newsequentialid-funktionen jämfört med newid-funktionen är att om du skapar ett index på ett UNIQUEIDENTIFIER-fält, är det nya värdet som genereras med newid inte fast, så det nya värdet gör att förändringen i index B+-trädet blir slumpmässig. Om det nya värdet som produceras av den nya sequentialid är reguljärt, är förändringen i index B+-trädet reguljär. Regelbundenhet och oregelbundenhet leder till prestationsförbättringar.
2: UNIQUEIDENTIFIER är en mycket bekväm sak att göra som primärnyckel, vilket har oersättliga fördelar i operationer som datasammanslagning Men på grund av decentraliseringen av vanliga GUID:er, om primärnyckeln läggs till i ett klustrat index, blir det mycket mindre effektivt när poster infogas
SQL SERVER 2005 lägger till en ny funktion kallad NEWSEQUENTIALID, som MSDN förklarar: Skapa en GUID på den angivna maskinen som är större än någon GUID som tidigare genererats av funktionen. NEWSEQUENTIALID() kan inte refereras i frågan.
Observera: Detta innebär att den endast kan användas som DEFAULT VALUE för en databaskolumn och inte kan exekveras satser som SELECT NEWSEQUENTIALID(). GUID:n som genereras av NEWSEQUENTIALID() är unik i just den datorn endast om datorn inte har ett nätverkskort.
Notera: Denna mening är fel, det borde vara så att endast när datorn har ett nätverkskort är den genererade GUID:en unik i världen Du kan använda NEWSEQUENTIALID() för att generera en GUID för att minska sidkonkurrens i bladnivåindexet.
|