SP не може да бъде оптимизиран с динамично име на таблица, така че много DBs, включително MySQL, не позволяват имена на таблици да бъдат зададени динамично.
Един от начините за това е да използвате Dynamic SQL.
CREATE DEFINER=`root`@`localhost` PROCEDURE `test_proc`(IN serviceName VARCHAR(10),IN newsInfoTable VARCHAR(100))
BEGIN
SET @sql = CONCAT('SELECT COUNT(*) FROM ',newsInfoTable,' WHERE newsServiceName=?;');
PREPARE s1 from @sql;
SET @paramA = serviceName;
EXECUTE s1 USING @paramA;
END$$