sql server - How to pass string to stored procedure -
my stored procedure is:
alter proc [hometution].[sp_gethomepageproducts] @catids nvarchar(500) begin select top 3 * product p p.id in (select productid product_category_mapping pcm pcm.categoryid in (@catids)) , p.showonhomepage=1 , p.deleted=0 order updatedonutc end
i calling this
exec sp_gethomepageproducts @catids='17,12'
i getting error
conversion failed when converting nvarchar value '17,12' data type int.
try 1 -
alter proc [hometution].[sp_gethomepageproducts] @catids nvarchar(500) begin ;with cte ( select id = p.value('(./s)[1]', 'int') ( select field = cast('<r><s>' + replace(@catids, ',', '</s></r><r><s>') + '</s></r>' xml) ) d cross apply field.nodes('/r') t(p) ) select top 3 * dbo.product p p.id in ( select pcm.productid dbo.product_category_mapping pcm join cte c on c.id = pcm.categoryid ) , p.showonhomepage = 1 , p.deleted = 0 order updatedonutc end
Comments
Post a Comment