开发者社区> 问答> 正文

无法使用Golang从SQL Server查询数据-出现错误“无效的对象名称”

我正在尝试使用Golang和GORM从SQL Server查询数据。但我得到以下错误:-

```js
DB Connection: &{{{0 0} 0 0 0 0} <nil> <nil> 0 0xc0000a4480 false 0 {0xc0000e5db0} <nil> {{0 0} {<nil>} map[] 0} 0xc00004c5b0 0xaccbe0 0xc00014d0a0 false <nil>}

HasTable- Currency: true
{CurrencyId:0 Code: Description:}

[35m(C:/Users/RahulBFL/Documents/architechbc/dot net/GORM/main.go:26)[0m
[33m[2019-12-27 15:56:13][0m [31;1m mssql: Invalid object name 'currencies'. [0m

我正在尝试使用Golang和GORM从SQL Server查询数据。但我得到以下错误:-

```js
DB Connection: &{{{0 0} 0 0 0 0} <nil> <nil> 0 0xc0000a4480 false 0 {0xc0000e5db0} <nil> {{0 0} {<nil>} map[] 0} 0xc00004c5b0 0xaccbe0 0xc00014d0a0 false <nil>}

HasTable- Currency: true
{CurrencyId:0 Code: Description:}

[35m(C:/Users/RahulBFL/Documents/architechbc/dot net/GORM/main.go:26)[0m
[33m[2019-12-27 15:56:13][0m [31;1m mssql: Invalid object name 'currencies'. [0m

展开
收起
祖安文状元 2020-01-04 15:45:23 1553 0
1 条回答
写回答
取消 提交回答
  • 如果检查错误,Invalid object name 'currencies'它将尝试查找名为的表currencies。默认情况下,gorm会使表名复数。如果您想要一个自定义表名,可以如下定义:

    func (Currency) TableName() string {
        return "currency"
    }
    
    

    或者,您可以使用以下命令全局禁用它:

    db.SingularTable(true)
    
    

    因此,您的示例应如下所示:

    type Currency struct {
        CurrencyId  int
        Code        string
        Description string
        CreateDate  time.Time
    }
    
    func (Currency) TableName() string {
        return "currency"
    }
    
    
    func main() {
        db, err := gorm.Open("mssql", "sqls*******talog=dbo")
    
        db.SingularTable(true)
    
        fmt.Println("db.HasTable: Currency:", db.HasTable("ClientUser"))
    
        var Currency []Currency 
    
        db.Find(&Currency)
    
        ....
    }
    
    2020-01-04 15:45:51
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server在电子商务中的应用与实践 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载