Sql server Azure数据库:如果不存在,则创建表

Sql server Azure数据库:如果不存在,则创建表,sql-server,azure,azure-sql-database,Sql Server,Azure,Azure Sql Database,我已经看到了Microsoft SQL Server的“如果不存在创建表”问题的答案(例如) 但是,这对Azure数据库不起作用-不确定是否无法访问sysobjects或信息架构,但我找不到可靠的方法来确定表是否已创建,如果尚未创建,则创建表。看来您必须访问master才能使其工作 当我在Azure上尝试此查询(来自上述链接中的解决方案)时,它失败: if not exists (select * from sysobjects where name='cars' and xtype='U')

我已经看到了Microsoft SQL Server的“如果不存在创建表”问题的答案(例如)

但是,这对Azure数据库不起作用-不确定是否无法访问sysobjects或信息架构,但我找不到可靠的方法来确定表是否已创建,如果尚未创建,则创建表。看来您必须访问master才能使其工作

当我在Azure上尝试此查询(来自上述链接中的解决方案)时,它失败:

if not exists (select * from sysobjects where name='cars' and xtype='U')
    create table cars (
        Name varchar(64) not null
    )
go
错误:

Msg 262, Level 14, State 1, Line 2
CREATE TABLE permission denied in database 'master'.

你知道如何在Azure上执行此操作吗?

你不能在Azure的主数据库中创建表。请创建一个数据库,并在那里运行创建表脚本。

不要过于简单,但数据库主控程序会抛出错误。事实上,您的数据是在主数据库中,而不是在命名数据库中吗?这是一个很好的问题。我不知道他们在Azure的幕后做什么。这不是我在Azure上作为VM操作的服务器,而是他们的数据库服务。我已经在Azure上有一个数据库了。我需要查看其中是否存在表,如果不存在,请创建它。您未连接到该数据库,而是连接到主数据库。请连接到希望该表位于其中的数据库。在SQL Azure中,您无法执行跨数据库查询。我已连接到我的数据库。当我打开SSMS时,我正在连接数据库实例的服务器名,如Azure中所示。如果我尝试执行“USE[databasename]”,则会失败,因为“Msg 40508,级别16,状态1,第1行USE语句不支持在数据库之间切换。”。使用新连接连接到其他数据库。“@joelc,从SSMS中,从下拉菜单中选择您的用户数据库。SSMS将在幕后为您创建一个新连接。明白了-查询现在可以从SSMS开始工作。我将标记@Satya_MSFT接受答案。谢谢你的澄清,丹!