Sql server 使用SQL Server Management Studio为Azure生成SQL脚本时获取脚本错误

Sql server 使用SQL Server Management Studio为Azure生成SQL脚本时获取脚本错误,sql-server,azure,azure-sql-database,ssms,Sql Server,Azure,Azure Sql Database,Ssms,我正在使用免费的azure网站,并制作了一个sql数据库。我需要创建db表,然后在中插入虚拟对象 我试图通过SQLManagementStudio生成脚本,但在azure db上运行脚本时,出现了很多错误 Msg 40508, Level 16, State 1, Line 1 USE statement is not supported to switch between databases. Use a new connection to connect to a different Dat

我正在使用免费的azure网站,并制作了一个sql数据库。我需要创建db表,然后在中插入虚拟对象

我试图通过SQLManagementStudio生成脚本,但在azure db上运行脚本时,出现了很多错误

Msg 40508, Level 16, State 1, Line 1
USE statement is not supported to switch between databases. Use a new connection to connect to a different Database.

Msg 102, Level 15, State 1, Line 5
Incorrect syntax near 'CONTAINMENT'.

Msg 102, Level 15, State 1, Line 11
Incorrect syntax near 'COMPATIBILITY_LEVEL'.

如何将数据获取到我的azure数据库中?

根据错误猜测一下:通过SSM生成脚本时,需要指定特定于Windows azure SQL数据库(以前称为SQL azure)的输出。我现在还没有安装,所以我不能给你提供截图。我将更新我的答案,如果在您确认这确实是问题之前安装了它。

正如David上面提到的,您可以指定脚本生成以Windows Azure SQL数据库为目标


您好,这可能有点晚了,但我发现:

在执行查询之前,基本上必须手动更改上下文(单击下拉列表中的正确数据库)。在数据库之间工作时,您可能已经注意到了这一点


希望这有助于解决错误

?SQL Server Management Studio只是在后台自动生成SQL语句,而且显然不支持Azure,因此您必须亲自编写SQL,或者修改它创建的脚本以消除错误。@RobertHarvey-SQL Server Management Studio支持SQL数据库兼容的输出。@DavidMakogon:是,但不是Azure友好的SQL数据库兼容输出。阅读错误消息的措辞。“SQL数据库”=“SQL Azure”(大约在一年前重命名)。我怀疑OP生成的创建脚本没有选择正确的选项。当我尝试生成数据(insert语句)时,我们仍然无法工作。我得到“此版本的SQL Server不支持Msg 40054,级别16,状态1,第1行没有聚集索引的表。请创建聚集索引并重试。”我还需要别的选择吗?我不知道为什么将数据插入数据库会如此困难。错误说明了一切,在Azure SQL数据库中可以有没有聚集索引的表。我建议您使用迁移向导将数据库移动到Azure(),以便您也可以分析它的不兼容性。那么“Sql Azure数据库”选项实际上是做什么的呢?我原以为它会使所有表和数据与Azure数据库兼容。生成脚本不会添加数据库中不存在的内容。如果您没有聚集索引,它就不会为您创建聚集索引。编辑:上面的评论应该是:“错误说明了一切,Azure SQL数据库中不能没有聚集索引的表”好的,我现在正在使用该工具,但不确定如何使用它生成的bcd(.dat)文件。