Корпорация Майкрософт распространяет исправления 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, перечисленных в разделе «Относится к».