Дублирующая схема - PullRequest
       7

Дублирующая схема

0 голосов
/ 03 августа 2009

Я создаю и поддерживаю свою базу данных хранилища SQL Server 2008 с помощью проекта Visual Studio 2008.

Когда я пытаюсь развернуть проект, я получаю сообщение об ошибке, как показано ниже

Creating DataWarehouseReports...
Company.HigherEducation.DataWarehouse.dbschema(0,0)Error TSD01268: .Net SqlClient Data Provider: Msg 2714, Level 16, State 6, Line 2 There is already an object named 'DataWarehouseReports' in the database.
Company.HigherEducation.DataWarehouse.dbschema(0,0)Error TSD01268: .Net SqlClient Data Provider: Msg 2759, Level 16, State 0, Line 2 CREATE SCHEMA failed due to previous errors.
An error occurred while the batch was being executed.
Done executing task "SqlDeployTask" -- FAILED.
Done building target "DspDeploy" in project "Company.HigherEducation.DataWarehouse.dbproj" -- FAILED.
Done executing task "CallTarget" -- FAILED.
Done building target "DBDeploy" in project "Company.HigherEducation.DataWarehouse.dbproj" -- FAILED.
Done building project "Company.HigherEducation.DataWarehouse.dbproj" -- FAILED.

Я обнаружил, что схема отчетов DataWarehouseReports существует в базе данных master (предоставлена ​​по ошибке), но при попытке создать ее в базе данных OLAP возникает ошибка «duplicate».

В процессе разработки мои базы данных OLAP и OLTP находятся на одном сервере, и я сталкиваюсь с той же проблемой для имен схем. На данный момент я назвал схемы по-разному в OLTP по сравнению с OLAP, но для обеспечения согласованности я предпочел бы иметь то же имя.

Как мне отладить это?

редактировать: предупреждение PEBCAC

Я обнаружил, что у меня есть сценарий sql перед развертыванием, который изменяет контекст базы данных на MASTER. Мой сценарий не удался, и поэтому контекст никогда не менялся.

Поэтому, когда остальная часть моего сценария была выполнена, он фактически пытался создать все в Master.

Извлеченный урок: Считать вывод при развертывании проекта.

1 Ответ

0 голосов
/ 04 августа 2009

По сути, проект VS2008 создает файл .SQL, в котором БД изменений находится только там, где создается БД. Если вы изменили контекст в Pre-Deployment, вы можете изменить его обратно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...