Hola!
Yo uso el "@" en los sp... aqui un ejm cuando quiero q el sp me devuelva el sgt numero correlativo de una tabla (guias de remision del almacen)
/*****************************************************/
CREATE PROCEDURE sp_Inv_Dame_Numero_Documento_New
@cCodEmp varchar(2),
@cAnno varchar(4),
@cMes varchar(2),
@cTipDoc varchar(2),
@cNumDoc varchar(12) OUTPUT,
@cNumDocSgt varchar(12) OUTPUT
AS
DECLARE @cMaxDocum varchar(12)
DECLARE @nMaxDocum int
DECLARE @nLen int
/* Obtengo el Numero Maximo del Tipo de Documento */
SELECT @cMaxDocum = ISNULL(MAX(CONVERT DECIMAL,In06CodDoc,0)), "000000000000")
FROM In06Docu
WHERE In06CodEmp = @cCodEmp
AND In06AA = @cAnno
AND In06MM >= '06'
AND In06TipDoc = @cTipDoc
--AND Substring(In06Coddoc,1,1)='0'
SELECT @cNumDoc = @cMaxDocum
/* Genero el Nro Correlativo */
IF @cMaxDocum = "000000000000"
BEGIN
SELECT @nMaxDocum = CONVERT(int, @cMaxDocum)
SELECT @nMaxDocum = @nMaxDocum + 1
SELECT @cMaxDocum = CONVERT(varchar(12), @nMaxDocum)
SELECT @nLen = DATALENGTH(RTRIM(@cMaxDocum))
SELECT @cNumDocSgt = REPLICATE("0", 5 - @nLen) + RTRIM(@cMaxDocum)
END
/* Ejecuto el Procedure */
GO
/*****************************************************/
Espero te ayude de algo...
Cuando colocas OUTPUT es por q son variables q toman datos para mostrartelos como resultado....
Q tengan un buen año!