如何避免SQL RequestError: "多部分标识符…不能被限制

How to avoid SQL RequestError: "The multi-part identifier ... could not be bound"?

本文关键字:标识符 不能 多部 SQL 何避免 RequestError quot      更新时间:2023-09-26

我得到一个SQL RequestError,而试图插入一个字符串到SQL Server表。字符串为com.redacted.redacted.redacted。我认为字符串中的句号在抛出某种危险信号,它是对一个对象的某些属性的引用,或者沿着这条线。我正在使用mssql节点模块的请求。

let myObj = {
    Date: '2015-06-22',
    PackageName: 'com.redacted.redacted.redacted'
}
let date = myObj['Date']
let pName = myObj['PackageName']
request.query('insert into myTable ([DATE],[PackageName]) values (' + date + ',' + pName + '))

我没有在网上找到任何关于试图避免使用点符号的东西,但我发现了一些相反的东西,试图进入符号。我也看了,但没有RegExp关键字来保持一个周期字面上的周期。

准确错误:

REQ ERROR
{ [RequestError: The multi-part identifier "com.redacted.redacted.redacted" could not be bound.]
    name: 'RequestError',
    message: 'The multi-part identifier "com.redacted.redacted.redacted" could not be bound.',
    code: 'EREQUEST',
    number: 4104,
    lineNumber: 1,
    state: 1,
    class: 16,
    serverName: 'REDACTED',
    procName: '' }

可不可以用双引号来括sql

request.query("insert into myTable ([DATE],[PackageName]) values ('" + date + "','" + pName + "')")

为了安全起见,您可能需要将pName中的任何单引号替换为两个单引号