重复架构

时间:2009-08-03 18:57:22

标签: sql sql-server tsql database-project

我正在使用Visual Studio 2008项目创建和维护我的SQL Server 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数据库中创建它时,我收到“重复”错误。

在开发中,我的OLAP和OLTP数据库位于同一台服务器上,我遇到了架构名称的相同问题。现在,我在OLTP和OLAP中命名模式的方式不同,但为了保持一致性,我宁愿使用相同的名称。

如何调试?

编辑:PEBCAC警报

我发现我有一个预部署的sql脚本,可以将数据库上下文更改为MASTER。我的脚本失败了,因此上下文从未被更改过。

因此,当我的其余脚本执行时,它实际上是在Master中创建所有内容。

获得的经验教训: 在项目部署时阅读输出。

1 个答案:

答案 0 :(得分:0)

基本上,VS2008项目会创建一个.SQL文件,其中更改数据库仅在创建数据库的位置。如果您在预部署中更改了上下文,则由您来更改它。