查询1:
DECLARE @strSQL NVARCHAR(MAX) = ''
DECLARE @MultiIDs NVARCHAR(50) = '7,8'
SET @strSQL = 'SELECT TOP 1 [User].PracticeID FROM [User] WHERE [UserId] IN (' + @MultiIDs + ')'
EXEC(@strSQL)
查询2:
DECLARE @MultiIDs NVARCHAR(550) = '7,8'
SELECT TOP 1 [User].PracticeID FROM [User] WHERE [UserId] IN (@MultiIDs)
为什么Query1不能运行Query2?
非常感谢任何解释。感谢
答案 0 :(得分:4)
因为查询2导致
WHERE [UserId] IN ('7,8')
一个字符串(包含2个值),而不是单独的值。
查询1完全是一个字符串,将被翻译成
WHERE [UserId] IN (7,8)
(注意引号)