• 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