Az entitás egységkódja a következő:
A beillesztési kód a következő:
Csak a név értékét állítjuk be, és nem rendelünk értéket az id-hez, nézzük meg, mi a generált SQL utasítás??? , a következőként:
exec sp_executesql N'DECLARE @generated_keys table([Id] uniqueidentifier) INSERT [dbo]. [TestTab] ([Név]) KIMENET beillesztve. [Id] BE @generated_keys ÉRTÉKEK (@0) SELECT t.[Id] A @generated_keys AS G JOIN [DBO]. [TestTab] AS t on g.[Id] = t.[Id] HOL @@ROWCOUNT > 0',N'@0 nvarchar(32)', @0=N' architectwww.itsvse.com'
Azt találtuk, hogy az INSERT TestTab tábla csak a Name mezőt illeszti be, van az Id-nek alapértelmezett értéke??? Azt találtuk, hogy
az ef segített beállítani az Id elsődleges kulcs alapértelmezett értéktípusát, az alapértelmezett értéket vagy kötést "(newsequentialid())", és használtam a newsequentialid() függvényt, amely az alábbiakban jelenik meg:
1.: A newsequentialid függvény legnagyobb előnye a newid függvényhez képest, hogy ha indexet hozol létre egy UNIQUEIDENTIFIER mezőn, az új érték, amit a newid segítségével generáltak, nem fix, így az új érték miatt az index B+ fa változása véletlenszerű lesz. Ha a newsequentialid által generált új érték reguláris, akkor az index B+ fa változása szabályos. A szabályosság és szabálytalanság teljesítményfejlődéshez vezet.
2: Az UNIQUEIDENTIFIER nagyon kényelmes elsődleges kulcsként működik, amelynek pótolhatatlan előnyei vannak olyan műveletekben, mint az adatok összevonása Azonban a hagyományos GUID-k decentralizációja miatt, ha a fő kulcsot egy klaszterezett indexhez adjuk, az sokkal kevésbé hatékony a rekordok behelyezése során
Az SQL SERVER 2005 új funkciót ad hozzá, a NEWSEQUENTIALID-et, amelyet az MSDN így magyaráz: Hozz létre egy GUID-et a megadott gépen, amely nagyobb, mint bármely korábban a függvény által generált GUID. A NEWSEQUENTIALID() nem hivatkozható a lekérdezésben.
Megjegyzés: Ez azt jelenti, hogy csak egy adatbázisoszlop ALAPÉRTELMEZETT ÉRTÉKEKÉNT használható, és nem hajthat végre olyan állításokat, mint a SELECT NEWSEQUENTIALID(). A NEWSEQUENTIALID() által generált GUID csak akkor egyedi abban a számítógépben, ha a számítógépnek nincs hálózati kártyája.
Megjegyzés: Ez a mondat téves, csak akkor kellene lennie, hogy a számítógépnek hálózati kártyája van, a generált GUID egyedi a világban Használhatod a NEWSEQUENTIALID() GUID-et a GUID generálásához, hogy csökkentsd az oldal vitatkozását a levélszintű indexen.
|