DECLARE @providerIdList varchar(400)
DECLARE @q varchar(400)
SELECT @q = ''
SELECT @providerIdList = '(1, 5, 15)'
SET @q = 'SELECT u.Id FROM [user] u
LEFT JOIN Provider p ON u.Provider_FK = p.Id
LEFT JOIN Providers2Users pu ON pu.user_FK = u.Id
LEFT JOIN Provider ap ON ap.Id = pu.provider_fk
WHERE p.Id IN ' + @providerIdList
exec @q
下面这个SQL的错误是,当我尝试了上述我怎样才能解决这个查询
Msg 203, Level 16, State 2, Line 18
The name 'SELECT u.Id FROM [user] u
LEFT JOIN Provider p ON u.Provider_FK = p.Id
LEFT JOIN Providers2Users pu ON pu.user_FK = u.Id
LEFT JOIN Provider ap ON ap.Id = pu.provider_fk
WHERE p.Id IN (1, 5, 15)' is not a valid identifier.
我真的很感激,如果显示的查询来执行我收到异常有人可以指出我导致这些错误的原因
exec(@q)也可以。您只需围绕在括号 – 2009-06-02 19:56:25
中的@var,这将不起作用:消息214,级别16,状态2,过程sp_executesql,行1 过程期望类型为'ntext/nchar/nvarchar'的参数'@statement'。 – 2009-06-02 19:57:54