Перейти до основного
Підтримка
Вхід
Вхід за допомогою облікового запису Microsoft
Увійдіть або створіть обліковий запис.
Вітаємо,
Виберіть інший обліковий запис.
У вас є кілька облікових записів
Виберіть обліковий запис, за допомогою якого потрібно ввійти.

Ознаки

Припустімо, що ви використовуєте Microsoft SQL Server 2016 або 2017. Під час обробки операцій даних, оптимізованих пам'яті за допомогою оптимізованої пам'яті таблиці змінних, де існує оператор, ви можете отримати неправильний результат.

Наприклад:

Крок 1. Створення оптимізованої пам'яті бази даних і таблиці.

Демонстрація створення бази даних

ALTER DATABASE demo ADD FILEGROUP demo_mod CONTAINS MEMORY_OPTIMIZED_DATA 

ALTER DATABASE demo ADD FILE (name='demo_mod1', filename='C:\DATA\demo_mod1') TO FILEGROUP demo_mod 

Використовувати демонстраційне зображення

Йти

CREATE TYPE dbo. IN_MEMORY_TABLE_TYPE AS TABLE

( source_col INT NULL,

target_col int not NULL

INDEX ix_InMemoryTable NONCLUSTERED (target_col)

) WITH (MEMORY_OPTIMIZED = ON)

ЙТИ

Крок 2. Вставлення даних і оновлення даних.

DECLARE @t dbo. IN_MEMORY_TABLE_TYPE

ВСТАВИТИ @t ( source_col, target_col ) ЗНАЧЕННЯ (10, 0);(0; 0)

select * from @t

UPDATE r1 SET target_col = -1 FROM @t R1

WHERE EXISTS (ВИБРАТИ * FROM @T R2 WHERE R2.SOURCE_COL > 0 )

SELECT * FROM @T

ЙТИ

Крок 3. Перевірка результатів.

Фактичні результати: не всі рядки змінної таблиці @t отримати оновлення.

source_col | target_col

----------------------

10 | -1

0 | 0

Очікувані результати. Усі рядки мають оновлюватися, щоб target_col = -1.

source_col | target_col

----------------------

10 | -1

0 | -1.

Спосіб вирішення

Цю проблему вирішено в сукупному пакеті оновлень для SQL Server:

      Сукупне оновлення 1 для SQL Server 2017 р. 

      Сукупний пакет оновлень 5 для SQL Server 2016 з пакетом оновлень 1 (SP1)

Кожен новий сукупний пакет оновлень для SQL Server містить усі виправлення та всі виправлення системи безпеки, які входили в попередній сукупний пакет оновлень. Ознайомтеся з останніми сукупними оновленнями для SQL Server:

Останнє сукупне оновлення для SQL Server 2017 р.

Останні сукупні оновлення для SQL Server 2016 р.

Стан

Корпорація Майкрософт підтвердила, що це проблема в продуктах Microsoft, перелічених у розділі "Стосується".

Посилання

Дізнайтеся про термінологію, яку корпорація Майкрософт використовує для опису оновлень програмного забезпечення.

Потрібна додаткова довідка?

Потрібні додаткові параметри?

Ознайомтеся з перевагами передплати, перегляньте навчальні курси, дізнайтесь, як захистити свій пристрій тощо.

Спільноти допомагають ставити запитання й відповідати на них, надавати відгуки та дізнаватися думки висококваліфікованих експертів.

Чи ця інформація була корисною?

Наскільки ви задоволені якістю мови?
Що вплинуло на ваші враження?
Натиснувши кнопку "Надіслати", ви надасте свій відгук для покращення продуктів і служб Microsoft. Ваш ІТ-адміністратор зможе збирати ці дані. Декларація про конфіденційність.

Дякуємо за відгук!

×