dECLARE @LS_SQL CHAR(100)
dECLARE @SQL varCHAR(max)
SET @LS_SQL=ltrim('''STOCK IN HAND'',''STORE'',''PRODUCT''')
set @SQL='SELECT * FROM ITEM WHERE GROUPNAME IN(' + rtrim(@LS_SQL) + ')'
PRINT @SQL
execute @SQL
结果
SELECT * FROM ITEM WHERE GROUPNAME IN('STOCK IN HAND','STORE','PRODUCT')Ms 2812,Level 16,State 62,Line 9可以 找不到存储过程'SELECT * FROM ITEM WHERE GROUPNAME IN('股票在手中','商店','产品')'。
答案 0 :(得分:2)
此命令
execute @SQL
运行程序。如果要运行动态sql,则应使用以下命令:
exec (@SQL)
您也可以使用
execute sp_sqlexec @SQL
答案 1 :(得分:1)
我建议使用sp_executesql,例如:
exec sp_executesql @stmt = @SQL
您可以在此处查看更多帮助Dynamic SQL - EXEC(@SQL) versus EXEC SP_EXECUTESQL(@SQL)
答案 2 :(得分:0)
试试这个
dECLARE @LS_SQL CHAR(100)
dECLARE @SQL varCHAR(max)
SET @LS_SQL=ltrim('''STOCK IN HAND'',''STORE'',''PRODUCT''')
set @SQL='SELECT * FROM ITEM WHERE GROUPNAME IN(' + rtrim(@LS_SQL) + ')'
PRINT @SQL
execute sp_sqlexec @SQL