Check the result of the query first
SELECT DISTINCT dbo._Goods.god_Name
FROM dbo._Roshani
INNER JOIN dbo._RoshaniGoods ON dbo._Roshani.rsh_id = dbo._RoshaniGoods.rsg_rshId
INNER JOIN dbo._Goods ON dbo._RoshaniGoods.rsg_godId = dbo._Goods.god_Id
WHERE rsh_rgiId=@rgi_Id
Does it return 2 values?
Edit:
SET @message = @message + ',' + @vendor_name