Para hacer lo que quieres debes especificar valores por defecto a las variables en la cabecera del procedimiento, por ejemplo
Código:
Create Procedure Sp_XD
(
@Tipo As Char(5),
@Var1 As Char(5) = Null
)
As
--Cuerpo de tu procedimiento
Go
Así, los parámetros que tengan un valor por defecto no serán obligatorios (Nota: Null puede cambiarse por cualquier valor, y este será el que tome si no le pasas un valor al parámetro.), y los que no lo tengan si deberán recibir un valor.
Ahora, para llamarlo te recomiendo que uses parametros referenciados por el nombre, por si tienes parámetros rqueridos y no requeridos revueltos en tu cabecera de procedimiento, ya que si no SQL no sabrá a que variable te refieres, y las pondra en orden de aparición.
saludos!