首页 > 解决方案 > Azure SQL 数据库新创建的表不允许插入数据但所有旧表都允许插入数据

问题描述

当我插入或获取数据时,我的 azure sqldatabase 旧表可以正常工作,但我的要求是创建新表并插入数据,我使用 azure studio 创建新表,表创建成功,但插入时无法在该表上插入数据数据我得到错误像这样:

▿ 可选

  • 一些:错误域=com.Microsoft.MicrosoftAzureMobile.ErrorDomain Code=-1302“无法发布 /tables/QOWResult” UserInfo={com.Microsoft.MicrosoftAzureMobile.ErrorResponseKey=<NSHTTPURLResponse: 0x60000031eea0> { URL: https://myurl/tables /QOWResult } { 状态码:404,标头 { "Content-Length" = ( 30 ); “内容类型”=(“文本/html;字符集=utf-8”);日期 =(“格林威治标准时间 2021 年 3 月 31 日星期三 12:32:54”);服务器 = ("Microsoft-IIS/10.0"); "X-Content-Type-Options" = ( nosniff ); "X-Powered-By" = ( Express, "ASP.NET" ); } }, NSLocalizedDescription=Cannot POST /tables/QOWResult , com.Microsoft.MicrosoftAzureMobile.ErrorRequestKey=<NSMutableURLRequest: 0x6000001d30c0> { URL: https://myurl/tables/QOWResult }}

我也尝试使用 azure 门户创建新表,但是当我在其上插入表数据时,出现上面的错误,我也分享了我的插入数据代码。

static func addOneWayResult( item: [String: Any],  handler: @escaping(QwizzOnewayResult?, Error?) -> Void) {
    let table = client?.table(withName: "QOWResult")
    table?.insert(item) { (insertedItem, error) in
        guard error == nil else {
            handler(nil, error)
            return
        }
        handler(QwizzOnewayResult(JSON(insertedItem!)),nil)
    }
}

这是我该表的列名:-

[Senderid] nvarchar NOT NULL, [Sendername] nvarchar NOT NULL, [SenderAvtar] nvarchar NOT NULL, [Reciever_id] nvarchar NOT NULL, [Recievername] nvarchar NOT NULL, [RecieverAvtar] nvarchar NOT NULL, [GameID] nvarchar NOT NULL, [ Gamename] nvarchar NOT NULL,[WinnerName] nvarchar NOT NULL,[InTime] nvarchar NULL,[AttempCounter] nvarchar NOT NULL,[create_date] [datetime] NOT NULL

这是工作室的新旧表列表

标签: iosswiftazureazure-functionsazure-sql-database

解决方案


这是这种情况

  • 插入旧表工作
  • 插入新表返回 404
  • 同一数据库中的所有表

基于此,它可能是一个权利问题。

与数据库的连接是在用户的上下文中完成的。如果该用户无权访问该表,它将返回 404 not found 错误。

您需要授予对新表的用户权限。


推荐阅读