首页 > 解决方案 > 更新 MS SQL 表

问题描述

我有一个我正在尝试使用 sqlx 更新的 MSSQL 数据库。我已成功读取表格,但尚未更新表格。

import (
_ "github.com/alexbrainman/odbc"
"github.com/jmoiron/sqlx"
)

func main() {
    SQLServer := "my_server"
    StdDB := "standard"
    TrkgTbl := "Tracking"

    databaseId := "2,3,582,1211,1791,39,1179,40,2082,55,107,1357,1931,60," +
        "389,393,2290,396,407,487,2271,670,702,1206"

    db, err := sqlx.Open("odbc", `Driver=SQL Server;Server=`+
        SQLServer+`;Database=`+StdDB+
        `;Trusted_Connection=yes;`)
    if err != nil {
        fmt.Println("Connection Failed ", err)
    }
    stmt := `UPDATE ` + TrkgTbl + `SET Status = 'Not Started'` +
        `, StaticCopyDate = null WHERE databaseid in (` + databaseId + `)`
    _, err = db.Exec(stmt)
    if err != nil {
        panic(err)
    }
    defer db.Close()
}

回报:

panic: SQLExecute: {42000} [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near 'Status'.
{42000} [Microsoft][ODBC SQL Server Driver][SQL Server]Statement(s) could not be prepared.

goroutine 1 [running]:
main.main()
        C:/Users/Clarkus978/go/src/updateSql.go:27 +0x33f
exit status 2

我也尝试过占位符 ( ?),但没有任何效果。我不确定如何解决这个问题。

标签: gosqlx

解决方案


`UPDATE ` + TrkgTbl + `SET

需要是

`UPDATE ` + TrkgTbl + ` SET

推荐阅读