试图通过用户 ID(一个 int)将一些记录与用户匹配。但它将动态完成,我需要能够同时匹配所有记录(我为 LIKE 通配符传递了一个 '%' 字符)。我以前做过这个,不小心遇到了这个问题。
Declare
@uid varchar = 300
SELECT * FROM items WHERE user_id LIKE @uid
不起作用,但这确实
Declare
@uid varchar(10) = 300
SELECT * FROM items WHERE user_id LIKE @uid
它匹配得很好,为什么没有声明 varchar 的大小时第一个版本不起作用?为什么它不抛出错误?
环境是 MSSQL SERVER 2008 R2