冒号的SQL目的

时间:2012-11-02 02:30:00

标签: sql-server-2008-r2 colon

我的同事写了这个SQL语句,我很难理解它。在where子句中使用冒号的目的究竟是什么?

WHERE MGM_YYMM like :AS_YYMM

完整查询:

SELECT  A.MGM_YYMM,
        A.MGM_DATE,
        A.MGM_GB,
        A.INDATE,
        A.SUDATE,
        A.EMPNUM,
FROM  SE_MAGAM A(NOLOCK)
WHERE MGM_YYMM like :AS_YYMM
ORDER BY MGM_YYMM DESC

1 个答案:

答案 0 :(得分:3)

这是一个绑定变量。

程序(或发出查询的其他任何内容)将为以下内容分配一个值:AS_YYMM,在这种情况下是与MGM_YYMM列匹配的模式。

这些参数化查询很有用,因为它们可以准备/解析/编译/分析一次,然后多次运行以获得不同的输入,同时减少开销(与每次新查询相比)。还有助于防止SQL注入(与从用户输入构建动态SQL语句相比)。