Код сущности сущности выглядит следующим образом:
Код вставки следующий:
Мы устанавливаем только значение имени и не присваиваем значение id, давайте посмотрим, что такое сгенерированный SQL-оператор??? , следующим образом:
exec sp_executesql N'DECLARE @generated_keys table([Id] uniqueidentifier) ВСТАВЬТЕ [dbo]. [TestTab] ([Имя]) OUTPUT вставлен. [Ид] В @generated_keys ЗНАЧЕНИЯ (@0) ВЫБЕРИТЕ t.[Id] ОТ @generated_keys AS g JOIN [dbo]. [TestTab] AS t ON g.[Id] = t.[Id] ГДЕ @@ROWCOUNT > 0',N'@0 nvarchar(32)', @0=N' архитекторwww.itsvse.com'
Мы обнаружили, что в таблице INSERT TestTab вставляется только поле Name, есть ли у id значение по умолчанию??? Мы это нашли
ef помог мне установить тип значения по умолчанию для первичного ключа Id, значение по умолчанию или привязку «(newsequentialid())», и использовал функцию newsequentialid(), которая вводилась следующим образом:
1.:Главное преимущество функции newsequentialid по сравнению с newid в том, что если создать индекс на поле UNIQUEIDENTIFIER, новое значение, генерируемое с помощью newid, не фиксировано, поэтому новое значение вызывает случайное изменение в индексном дереве B+. Если новое значение, получаемое ньюсеквенциалидом, регулярно, то изменение индексного дерева B+ является регулярным. Регулярность и нерегулярность приводят к улучшению производительности.
2: UNIQUEIDENTIFIER — очень удобная функция в качестве первичного ключа, которая обладает незаменимыми преимуществами в операциях, таких как слияние данных Однако из-за децентрализации обычных GUID, если первичный ключ добавлен в кластерный индекс, он будет значительно менее эффективен при вставке записей
SQL SERVER 2005 добавляет новую функцию под названием NEWSEQUENTIALID, которую MSDN объясняет: Создайте GUID на указанной машине, который будет больше любого ранее сгенерированного GUID этой функцией. NEWSEQUENTIALID() нельзя ссылаться в запросе.
Примечание: это означает, что его можно использовать только как DEFAULT ЗНАЧЕНИЕ столбца базы данных и не может выполнять операторы вроде SELECT NEWSEQUENTIALID(). GUID, сгенерируемый NEWSEQUENTIALID(), уникален в конкретном компьютере только если у компьютера нет сетевой карты.
Примечание: Это предложение неверное, должно быть, что только когда у компьютера есть сетевая карта, генерируемый GUID является уникальным в мире Вы можете использовать NEWSEQUENTIALID() для генерации GUID и снижения конкуренции страниц на уровне листа.
|