You can use USE statement in stored procedure in dynamical SQL like
CERATE PROCEDURE [dbo].[USE_PROOV_KUIDO_S]
@baas NVARCHAR(128)=NULL
AS
BEGIN
SET NOCOUNT ON
DECLARE @er NVARCHAR(1000)
SET @er='USE ['+ISNULL(@baas,DB_NAME())+'];SELECT NAME FROM SYSUSERS WHERE ISSQLUSER=1 AND HASDBACCESS=1'
EXEC (@er)
END
EXECUTE [dbo].[USE_PROOV_KUIDO_S] @baas='MSDB'
EXECUTE [dbo].[USE_PROOV_KUIDO_S] @baas=NULL