3

AID 是SQL Server 中的一种类型AID = 10或何时有什么区别?AID = '10'INT

Select *
from ATable
where AID = '10'

Select *
from ATable
where AID = 10
4

1 回答 1

6

不同之处在于 SQL 需要进行转换才能将varchar常量与列的类型进行比较。

如果您显示第一个查询的执行计划,您将看到如下内容:

CONVERT_IMPLICIT(int, [@1], 0)

编辑

在上述情况下,常量的转换只会对性能产生很小的影响。但是,如果转换是在列(而不是常量)上完成的,这可能会导致扫描,从而产生更严重的后果。

根据 Remus 的回答,您可以在此处查看转换的优先顺序

于 2012-11-13T12:15:03.693 回答