转义 T-SQL 关键字

Ago*_*ony 6 sql-server t-sql php

$sql = "SELECT Kill FROM tbl_pvporderview";
Run Code Online (Sandbox Code Playgroud)

问题是我最终得到:Incorrect syntax near the keyword 'Kill'.

因为kill是 T-SQL 命令......有什么办法可以绕过它?

我无法更改列名,因为它经常被软件使用,而且我无法更改使用数据库的软件。

因此,如果我用来sqlserv从该列中选择数据,它只会失败。'' 或 "" 不会有帮助。

完整的声明将是:

$sql = "SELECT serial,Kill FROM tbl_pvporderview WHERE Kill > (?) ORDER BY Kill DESC ";
Run Code Online (Sandbox Code Playgroud)

ype*_*eᵀᴹ 13

如果您想使用保留字作为表名或列名,您有两个选择:

使用方括号(SQL-Server 的方式): SELECT [Kill]

或双引号*(ANSI/ISO 标准):SELECT "Kill"

你的整个声明将变成:

SELECT [serial], [Kill] 
FROM tbl_pvporderview 
WHERE [Kill] > (?) 
ORDER BY [Kill] DESC ;
Run Code Online (Sandbox Code Playgroud)

*:当然,使用双引号 ( SELECT "Kill") 就必须QUOTED_IDENTIFIERON. 您可能会遇到设置仍然为 的数据库SET OFF


kyo*_*ryu 9

将列名括在方括号中:

$sql = "SELECT [Kill] FROM tbl_pvporderview"; 
Run Code Online (Sandbox Code Playgroud)