Я создаю и поддерживаю свою базу данных хранилища 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.
Извлеченный урок: Считать вывод при развертывании проекта.