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

Popular posts from this blog

blackberry 10 - how to add multiple markers on the google map just by url? -

php - guestbook returning database data to flash -

delphi - Dynamic file type icon -