PostgreSQL 与 SQL 服务器中的参数化查询

Parameterized query in PostgreSQL vs SQL Server

在我的一个 R 项目中,我使用以下代码将一些用户信息插入 PostgreSQL 数据库,但现在我想将其切换到 SQL 服务器。不幸的是,这是失败的。

library(DBI)
conn <- #database connection
# data$data is a list 
    dbExecute(
              conn,
              "INSERT INTO users (user_uuid, user_firstname, user_lastname, user_email, 
              user_role, owner_uuid, user_password, flag_user_active) VALUES (, , , , , , , TRUE)",
              params = c(
                list(user_uuid),
                list(user_password_encrypted),
                unname(data$data)
              )
            )

我感觉 SQL 服务器处理参数化查询的方式与 PostgreSQL 不同,但不幸的是,我无法找到关于如何修改它以使其运行良好的明确答案。我希望有人能随时获得这个答案。谢谢!

下面的代码在 SQL 服务器上完成了工作,但它不如问题中适用于 PostgreSQL 的代码好。主要缺点是您不能像在 PostgreSQL 中那样引用 VALUES 中的变量。

library(DBI)
conn <- #database connection
# data$data is a list 
    dbExecute(
              conn,
              "INSERT INTO users (user_uuid, user_firstname, user_lastname, user_email, 
              user_role, owner_uuid, user_password, flag_user_active) VALUES (?, ?, ?, ?, ?, ?)",
              params = c(
                list(user_uuid),
                list(user_password_encrypted),
                unname(data$data)
              )
            )

注意参数的顺序需要和INSERT语句中的顺序一致。