我有一个尝试在Azure上发布的简单数据库架构。它可以很好地发布到我的本地驱动器,但是当我选择Azure托管数据库时,我得到一个错误:
(47,1): SQL72014: .Net SqlClient Data Provider: Msg 1801, Level 16, State 3, Line 1 Database 'Under Writer' already exists. Choose a different database name.
深入研究Visual Studio生成的SQL代码,我们会看到:
GO
DROP DATABASE [$(DatabaseName)]
GO
PRINT N'Creating $(DatabaseName)...'
GO
CREATE DATABASE [$(DatabaseName)] COLLATE SQL_Latin1_General_CP1_CI_AS
GO
Azure报告未删除数据库的情况。显然,正在进行一些异步操作,因为在我收到数据库已经存在的消息后,数据库就消失了。也就是说,调用“创建数据库”功能后,将异步删除数据库。
您可以通过剪切,将其粘贴到SSMS中并执行它来验证生成的代码是否被弄乱了。它失败。如果在放置和创建之间放置足够长的延迟,则它会成功。