Le code de l’entité est le suivant :
Le code d’insertion est le suivant :
Nous ne fixons que la valeur de name et n’attribuons pas de valeur à id, voyons ce qu’est l’instruction SQL générée ??? , comme suit :
exec sp_executesql N’DECLARE @generated_keys table([Id] identifiant unique) INSÉRER [dbo]. [TestTab] ([Nom]) SORTIE insérée. [Id] DANS @generated_keys VALEURS (@0) SELECT t.[Id] DE @generated_keys AS g JOIN [dbo]. [TestTab] AS t ON g.[Id] = t.[Id] OÙ @@ROWCOUNT > 0',N'@0 nvarchar(32)', @0=N' architectewww.itsvse.com'
Nous avons constaté que la table INSERT TestTab n’insère que le champ Nom, Id a-t-il une valeur par défaut ??? Nous avons découvert que
ef m’a aidé à définir le type de valeur par défaut de la clé primaire Id, la valeur par défaut ou la liaison « (newsequentialid()) », et a utilisé la fonction newsequentialid(), introduite comme suit :
1. : Le plus grand avantage de la fonction newsequentialid par rapport à la fonction newid est que si vous créez un index sur un champ UNIQUEIDENTIFIER, la nouvelle valeur générée avec newid n’est pas fixe, donc la nouvelle valeur rend aléatoire le changement dans l’arbre d’indice B+. Si la nouvelle valeur produite par le newsequentialid est régulière, alors le changement de l’arbre d’indice B+ est régulier. La régularité et l’irrégularité conduisent à des améliorations de performance.
2 : UNIQUEIDENTIFIER est une chose très pratique à faire en tant que clé primaire, ce qui présente des avantages irremplaçables dans des opérations telles que la fusion de données Cependant, en raison de la décentralisation des GUID ordinaires, si la clé primaire est ajoutée à un index clusteré, elle sera beaucoup moins efficace lors de l’insertion des enregistrements
SQL SERVER 2005 ajoute une nouvelle fonction appelée NEWSEQUENTIALID, que MSDN explique : Créez un GUID sur la machine spécifiée qui soit plus grand que tout GUID précédemment généré par la fonction. NEWSEQUENTIALID() ne peut pas être référencé dans la requête.
Note : Cela signifie qu’il ne peut être utilisé que comme VALEUR PAR DÉFAUT d’une colonne de base de données, et ne peut pas exécuter des instructions comme SELECT NEWSEQUENTIALID(). Le GUID généré par NEWSEQUENTIALID() n’est unique dans cet ordinateur particulier que si celui-ci ne possède pas de carte réseau.
Note : Cette phrase est fausse, il devrait être que ce n’est que lorsque l’ordinateur possède une carte réseau, que le GUID généré est unique dans le monde Vous pouvez utiliser NEWSEQUENTIALID() pour générer un GUID afin de réduire la contention de page sur l’index feuille.
|