KB2723232 . ИСПРАВЛЕНИЕ: "Произошла ошибка базы данных. Обращение к системному администратору" возникает сообщение об ошибке при попытке заполнить бизнес-правило сущности в SQL Server 2008 R2 MDS

Применяется к
SQL Server 2008 R2

Корпорация Майкрософт распространяет исправления Microsoft SQL Server 2008 R2 в виде одного скачиваемого файла. Так как исправления являются накопительными, каждый новый выпуск содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений SQL Server 2008 R2.

Проблема

Рассмотрим следующий сценарий.

  • Бизнес-правило для сущности создается в SQL Server 2008 R2 Master Data Services (MDS). Сущность имеет несколько атрибутов на основе домена, которые заполняются значениями из одной сущности. Новое бизнес-правило содержит условия, определенные для нескольких атрибутов на основе домена, и эти условия указывают на одну сущность.
  • Вы пытаетесь опубликовать бизнес-правило.

В этом сценарии появляется сообщение об ошибке, похожее на следующее:

Примечание

          
Произошла ошибка базы данных. Обратитесь к системному администратору.

Кроме того, в MDSTrace.log

Ошибка MDS: 0: произошла ошибка базы данных. Обратитесь к системному администратору.
   в Microsoft.MasterDataServices.Core.DataAccess.DbHelper.HandleExceptions(Exception ex)
   в Microsoft.MasterDataServices.Core.DataAccess.DbHelper.ExecuteNonQuery(String query, CommandType commandType, CloseConnectionBehavior closeBehavior)
   в Microsoft.MasterDataServices.Core.DataAccess.BusinessRules.BusinessRulesExecuteScript(CloseConnectionBehavior closeBehavior, string script)
   в Microsoft.MasterDataServices.Core.BusinessLogic.BusinessRulesPublish.Generation.RunGeneration(BusinessRules businessLogicLayer, Int32 entityId, BREntityMemberType ruleSubType, OperationResult result)
Сведения об ошибке SQL: число: 102, сообщение: неправильный синтаксис рядом с 'DBA.<ИМЯ>.<LEAF>'., Server: ServerName, Proc: udp_SYSTEM_X_X_CHILDATTRIBUTES_ProcessRules, Line: X

      

Причина

Эта проблема была вызвана известной проблемой в таблице стилей XSLT, которая использовалась для создания синтаксиса хранимой процедуры для хранимых процедур бизнес-правила. Конкретная проблема заключалась в том, что в синтаксисе отсутствовала запятая.

Решение

Сведения о накопительных обновлениях

SQL Server 2008 R2 с пакетом обновления 2 (SP2)

Исправление этой проблемы было впервые выпущено в накопительном пакете обновления 2. Дополнительные сведения о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2, щелкните следующий номер статьи, чтобы просмотреть статью в базе знаний Майкрософт:

2740411 накопительный пакет обновления 2 для SQL Server 2008 R2 с пакетом обновления 2 (SP2) Примечание. Поскольку сборки являются накопительными, каждый новый выпуск исправления содержит все исправления и все исправления безопасности, включенные в предыдущий выпуск исправления SQL Server 2008 R2. Рекомендуется применить последний выпуск исправления, содержащий это исправление. Для получения дополнительных сведений щелкните следующий номер статьи, чтобы просмотреть статью в базе знаний Майкрософт:

2567616 сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2 с пакетом обновления 2 (SP2)

Состояние

Корпорация Майкрософт подтвердила, что это проблема продуктов Microsoft, перечисленных в разделе «Относится к».