KB2384766-FIX: властивість ANSI_NULLS індексованого подання зміниться на FALSE після реплікації індексованого подання до бази даних передплатою в SQL Server 2008 або SQL Server 2008 R2

Застосовується до: Microsoft SQL Server 2008 Service Pack 2SQL Server 2008 R2

Корпорація Майкрософт поширює Microsoft SQL Server 2008 і Microsoft SQL Server 2008 R2, щоб виправити один файл для завантаження. Оскільки виправлення сукупно, у кожному новому випуску містяться всі виправлення та всі виправлення системи безпеки, які були включені до попередньої версії SQL Server 2008 або SQL Server 2008 R2 Fix Release.

Ознаки


Розглянемо такий сценарій:
  • Ви створюєте транзакційний публікацію в Microsoft SQL Server 2008 або в Microsoft SQL Server 2008 R2.
  • У вас є індексований режим. Ви настротите властивість ANSI_NULLS в поданні покажчика значення TRUE.
  • Ви додаєте індексоване подання до публікації як статтю. Ви встановили тип статті на "індексований режим logbased". Примітка . Для визначення типу індексованого подання можна використовувати наведений нижче код. Виконайте ці дії під час запуску sp_addarticle збереженої процедури, щоб додати статтю з індексованою поданням до публікації.
    @type = N'indexed view logbased'
  • Ви створюєте абонентську плату за транзакційний публікацію.
  • Індексовано подання реплікується до бази даних передплатою.
У цьому випадку властивість ANSI_NULLS індексоване подання ЗМІНИТЬСЯ на false в базі даних "Передплата".Примітки
  • Ця проблема зазвичай виникає, коли властивість ANSI_NULLS таблиці, що беруть участь у структурі SQL-виразу в поданні індексу, має значення false.
  • Ця проблема також існує в Microsoft SQL Server 2005.

Причина


Ця проблема виникає, оскільки таблиці, подання, функції та Збережена процедура в SQL Server 2008 мають однаковий біт сховища для властивості ANSI_NULL . Тому, якщо властивість ANSI_NULLS однієї з таблиць, причетних до СТРУКТУРИ виразу SQL, має значення FALSE, властивість ANSI_NULLS за замовчуванням для ІНДЕКСОВАНОГО подання матиме значення false.

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


Відомості про Сукупне оновлення

SQL Server 2008 із пакетом оновлень 1

Виправлення для цієї проблеми уперше випущено в сукупному оновленні 10 для SQL Server 2008 Service Pack 1. Щоб отримати докладні відомості про цей пакет накопичувальне оновлення, клацніть номер статті в базі знань Microsoft Knowledge Base:
2279604 Сукупний пакет оновлень пакета 10 для SQL Server 2008 Service Pack 1
Примітка. Оскільки будує сукупну версію, кожен новий випуск Fix містить всі виправлення та виправлення безпеки, які були включені до попередньої версії SQL Server 2008 Fix Release. Корпорація Майкрософт рекомендує застосувати найновішу версію виправлення, що містить це виправлення. Щоб отримати докладні відомості, клацніть номер цієї статті бази знань Microsoft:
970365 Випущено SQL Server 2008, що випущено після випуску пакета оновлень 1 (SP1) для SQL Server 2008
Поточні виправлення Microsoft SQL Server 2008 створюються для певних пакетів оновлень для сервера SQL Server. Щоб інсталювати пакет оновлень 1 (SP1) для SQL Server 2008, потрібно виконати термінове виправлення в SQL Server 2008 Service Pack 1. За замовчуванням будь-яке термінове виправлення, яке надається в пакеті оновлень SQL Server, включено до наступного пакета оновлень служби SQL Server.

SQL Server 2008 із пакетом оновлень 2

Виправлення для цієї проблеми уперше випущено в сукупному оновленні 1 для SQL Server 2008 Service Pack 2. Щоб отримати докладні відомості про цей пакет накопичувальне оновлення, клацніть номер статті в базі знань Microsoft Knowledge Base:
2289254 Сукупне оновлення 1 для SQL Server 2008 із пакетом оновлень 2
Примітка. Оскільки будує сукупну версію, кожен новий випуск Fix містить всі виправлення та виправлення безпеки, які були включені до попередньої версії SQL Server 2008 Fix Release. Радимо застосувати найновішу версію виправлення, що містить це виправлення. Щоб отримати докладні відомості, клацніть номер цієї статті бази знань Microsoft:
2402659 Інстальовано пакет оновлення SQL Server 2008, який було випущено після випуску служби SQL Server 2008 Service Pack 2

SQL Server 2008 R2

Виправлення для цієї проблеми уперше випущено в сукупному оновленні 4. Щоб отримати докладні відомості про отримання цього сукупного оновлення пакета для SQL Server 2008 R2, клацніть цей номер статті, щоб переглянути статтю в базі знань Microsoft Knowledge Base:
2345451 Сукупний пакет оновлень пакета 4 для SQL Server 2008 R2
Примітка. Оскільки будує сукупну версію, кожен новий випуск Fix містить всі виправлення та виправлення безпеки, які були включені до попередньої версії SQL Server 2008 R2 Fix Release. Радимо застосувати найновішу версію виправлення, що містить це виправлення. Щоб отримати докладні відомості, клацніть номер цієї статті бази знань Microsoft:
981356 Випущено SQL Server 2008 R2, випущеній після випуску SQL Server 2008 R2

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


Щоб вирішити цю проблему, оновіть кеш метаданих після створення індексованого подання, а потім, перш ніж sp_addarticle запускається, щоб додати статтю з індексованою поданням.Примітки Щоб оновити кеш метаданих, скористайтеся одним із наведених нижче способів.
  • Зупиніть службу SQL Server, а потім запустіть службу.
  • Установіть в автономному режимі базу даних для передплатою, а потім настройте базу даних на веб-сайті.

Стан


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

Посилання


Щоб отримати докладні відомості про збережену sp_addarticle процедуру, перейдіть на веб-сайт Microsoft:Щоб отримати докладні відомості про публікацію даних і об'єкти бази даних, перейдіть на веб-сайт Microsoft:Щоб отримати докладні відомості про модель інкрементного обслуговування для SQL Server, клацніть цей номер статті, щоб переглянути статтю в базі знань Microsoft Knowledge Base:
935897 Модель інкрементного обслуговування доступна з команди SQL Server, щоб доставити виправлення для повідомляли про проблеми
Щоб отримати докладні відомості про схему іменування для оновлень SQL Server, клацніть цей номер статті, щоб переглянути статтю в базі знань Microsoft Knowledge Base:
822499 Нова схема іменування для пакетів оновлень програмного забезпечення Microsoft SQL Server
Щоб отримати докладніші відомості про термінологію оновлення програмного забезпечення, клацніть номер статті в базі знань Microsoft Knowledge Base:
824684 Опис стандартної термінології, яка використовується для опису оновлень програмного забезпечення Microsoft