Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/08/2012, 05:46
Avatar de Sougiro
Sougiro
 
Fecha de Ingreso: octubre-2007
Mensajes: 136
Antigüedad: 16 años, 6 meses
Puntos: 1
Error mostrado en un procedimiento almacenado

Hola a todos, estoy haciendo un procedimiento almacenado que me inserte unos datos dependiendo de unos parámetros que se le envían desde una pagina web ASP.NET, pero en el momento de ejecutar la consulta y crear el procedimiento el SQL server 2008 me esat mostrando este error:

Msg 2750, Level 16, State 1, Procedure InsertaMensaje, Line 7
Column or parameter #14: Specified column precision 50 is greater than the maximum precision of 38.

este es el procedimiento:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- ================================================== ================================================== ===
-- Author: Jhon Restrepo
-- Create date: Agosto 3 de 2012
-- Alter date: Agosto 6 de 2012
-- Description: Inserta y Modifica la informacion registrada del mensaje y de los casos de dicho mensaje
-- ================================================== ================================================== ===
CREATE PROCEDURE InsertaMensaje
-- Parametros de entrada
@ID_COLA NVARCHAR(10),
@ID_PROCESO NVARCHAR(10),
@SECUENCIA NVARCHAR(10),
@ACCION NVARCHAR(4000),
@TIPODOCUMENTO NVARCHAR(50),
@MENSAJECENT NVARCHAR(4000),
@MENSAJECLIENTE NVARCHAR(4000),
@OBSERVACIONES NVARCHAR(4000),
@DESCRIPCION NVARCHAR(4000),
@ID_CASO NVARCHAR(10)
AS
--Variables
DECLARE @STRSQL nVARCHAR(4000)
DECLARE @OPCION NUMERIC(1)
DECLARE @ID_MENSAJE NUMERIC(1)
DECLARE @ID_CASOS NUMERIC(50)
DECLARE @NUMEROCASO NUMERIC(10)
BEGIN
SET NOCOUNT ON;

SET @ID_MENSAJE = -1
--Consultar la informacion en la base de datos
SELECT @ID_MENSAJE = MENSAJE FROM QUE_HACER_CENT.DBO.MENSAJES WITH (NOLOCK)
WHERE ID_PROCESO = @ID_PROCESO AND SECUENCIA = @SECUENCIA AND ACCION = @ACCION
AND TIPODOCUMENTO = @TIPODOCUMENTO AND MENSAJECENT = @MENSAJECENT AND MENSAJECLIENTE = @MENSAJECLIENTE

IF @ID_MENSAJE <> -1
BEGIN
SET @OPCION = 1
END
ELSE
BEGIN
SET @OPCION = 2
END

IF @OPCION = 1
BEGIN

SELECT @ID_MENSAJE = MAX(ID_MENSAJE) FROM QUE_HACER_CENT.DBO.MENSAJES WITH (NOLOCK)

SET @ID_MENSAJE = @ID_MENSAJE + 1

SELECT @ID_CASOS = MAX(ID_CASOS) FROM QUE_HACER_CENT.DBO.CASOS WITH (NOLOCK)
SELECT @NUMEROCASO = MAX(NUMEROCASO) FROM QUE_HACER_CENT.DBO.CASOS WITH (NOLOCK)
WHERE ID_MENSAJE = @ID_MENSAJE

IF @NUMEROCASO IS NULL
BEGIN
SET @NUMEROCASO = 1
END
ELSE
BEGIN
SET @NUMEROCASO = @NUMEROCASO + 1
END

SET @ID_CASOS = @ID_CASOS + 1

INSERT INTO [Que_Hacer_Cent].[dbo].[Mensajes]([Id_mensaje],[Proceso],[Secuencia],[Accion],[TipoDocumento]
,[MensajeCliente],[MensajeCent],[Observaciones],[Id_Cola])
VALUES
(@ID_MENSAJE,@ID_PROCESO,@SECUENCIA,@ACCION,@TIPOD OCUMENTO,@MENSAJECENT,@MENSAJECLIENTE,@OBSERVACION ES,@ID_COLA)
INSERT INTO [Que_Hacer_Cent].[dbo].[Casos]
([Id_Casos],[NumeroCaso],[Id_mensaje],[Descripcion])
VALUES
(@ID_CASOS,@NUMEROCASO,@ID_MENSAJE,@DESCRIPCION)
END
IF @OPCION = 2
BEGIN
UPDATE [Que_Hacer_Cent].[dbo].[Mensajes]
SET [Proceso] = @ID_PROCESO
,[Secuencia] = @SECUENCIA
,[Accion] = @ACCION
,[TipoDocumento] = @TIPODOCUMENTO
,[MensajeCliente] = @MENSAJECENT
,[MensajeCent] = @MENSAJECLIENTE
,[Observaciones] = @OBSERVACIONES
,[Id_Cola] = @ID_COLA
WHERE ID_MENSAJE = @ID_MENSAJE

UPDATE [Que_Hacer_Cent].[dbo].[Casos]
SET [Descripcion] = @DESCRIPCION
WHERE ID_CASOS = @ID_CASO


END
END
GO

Por favor, ayúdenme. Gracias