我有一個存儲過程如何通過項目作爲參數列表存儲過程
create PROCEDURE [dbo].[SP]
(
@OrderList varchar(500)
)
AS
Begin
select *
from table
where id in ('+ @OrderList +')
在這裏,我路過orderlist ....
當我執行這樣
exec sp 'iss005,iss006'
我沒有收到數據
但是當我硬編碼像這樣...
select * from table where id in ('iss005','iss006')
然後我得到的數據...
謝謝
是 - 當然 - 什麼是你的問題? –
當你對你的值進行「硬編碼」時,你在** IN子句中提供了**列表**。然而,當你傳遞你的參數時,你提供**只有一個字符串**,它恰好包含逗號分隔的文本 - 但它仍然只是一個單一的字符串 - ** NOT **字符串列表爲「IN」語句需要......您需要在答案中使用其中一種方法 - 將您的參數字符串變成**列表中的字符串列表** –