首页 > 解决方案 > 如何使用 *DB.Create() 使用 GORM 将数据插入 SQLServer

问题描述

我找到了两种使用 GORM 将数据插入 SQLServer 的方法。

  1. GORM.DB.Exec("insert into [tableA] (value1,value2) VALUES (?,?)",v1,v2). 有用。
  2. GROM.DB.Create(&myDataStruct).Error. 这会报告错误,消息是“不支持 LastInsertId。请使用 OUTPUT 子句或添加select ID = convert(bigint, SCOPE_IDENTITY())到查询的末尾。”

我明白这条指令的含义是什么,但我不知道如何编码。谢谢你的帮助。

按照我的代码

db := mssql.GetMssqlDB()
    defer db.Close()

    newData := mssql.People{
        Name: "Tom",
        Age:  12,
    }
    err := db.Create(&newData).Error
    if err != nil {
        fmt.Println()
    }

和数据结构


type People struct {
    ID   int64  `gorm:"primary_key;column:id"`
    Name string `gorm:"column:name"`
    Age  int    `gorm:"column:age"`
}

func (p People) TableName() string {
    return "dbo.people"
}

标签: sql-servergoinsertgo-gorm

解决方案


这是一个错误,自https://github.com/go-gorm/gorm/pull/2690起已修复。如果您遇到相同的错误,请尝试更新您的 gorm,它应该可以工作。


推荐阅读