【发布时间】:2018-04-07 04:10:55
【问题描述】:
我已经看到 Microsoft SQL Server 的“如果不存在则创建表”问题的答案(例如,CREATE TABLE IF NOT EXISTS equivalent in 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 上作为 VM 运行的服务器,而是他们的数据库服务。 azure.microsoft.com/en-us/services/sql-database
标签: sql-server azure azure-sql-database