SQL Server - AYUDA CON RAISERROR EN SQL SERVER 2000

 
Vista:

AYUDA CON RAISERROR EN SQL SERVER 2000

Publicado por NEI (5 intervenciones) el 15/01/2010 22:52:05
HOLA QUE TAL ESTABA HACIENDO MI BD EN SQL SERVER 2008 Y ME FUNCIONABA BIEN MI PROCEDIMIENTO ALMACENADO PERO TUVE QUE CAMBIAR A SQL SERVER 2000 Y ME MARCA ERROR EN ESTE PROCEDIMIENTO ALMACENADO

create procedure sp_altavacunasg
@fecha_vacunag varchar(10),
@medicamentog varchar(50),
@num_tatuajeg varchar(10)
as
begin try
insert into tbl_vacunasg (fecha_vacunag, medicamentog, num_tatuajeg)
values (@fecha_vacunag, @medicamentog, @num_tatuajeg)
return
end try
begin catch
raiserror ('Para llenar el campo "Número de tatuaje" asegurese de que ese número está dado de alta en la tabla de ganado.', 16, 1)
end catch
go

ME MARCA LOS SIGUIENTES ERRORES

Servidor: mensaje 170, nivel 15, estado 1, procedimiento sp_altavacunasg, línea 6
Línea 6: sintaxis incorrecta cerca de 'try'.
Servidor: mensaje 156, nivel 15, estado 1, procedimiento sp_altavacunasg, línea 10
Sintaxis incorrecta cerca de la palabra clave 'end'.
Servidor: mensaje 156, nivel 15, estado 1, procedimiento sp_altavacunasg, línea 13
Sintaxis incorrecta cerca de la palabra clave 'end'.

COMO PROGRAMO EL RAISERROR PARA QUE ME FUNCIONE CORRECTAMENTE

GRACIAS POR SU AYUDA
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de roger

RE:AYUDA CON RAISERROR EN SQL SERVER 2000

Publicado por roger (173 intervenciones) el 15/01/2010 23:28:52
en sql server 2000 no es valido el try catch, el raiseerror lo tienes bien.

Podrias hacerlo asi

create procedure sp_altavacunasg
@fecha_vacunag varchar(10),
@medicamentog varchar(50),
@num_tatuajeg varchar(10)
as
insert into tbl_vacunasg (fecha_vacunag, medicamentog, num_tatuajeg)
values (@fecha_vacunag, @medicamentog, @num_tatuajeg)

if @@error<>0
begin
raiserror ('Para llenar el campo "Número de tatuaje" asegurese de que ese número está dado de alta en la tabla de ganado.', 16, 1)
end
go
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA CON RAISERROR EN SQL SERVER 2000

Publicado por nei (5 intervenciones) el 15/01/2010 23:46:26
gracias por tu ayuda pero no me acepta el if, bueno creo k no entra al ciclo
ya intente ponerlo antes del insert y tampoco funciona, cuando lo hago desde
visual studio me manda el mensaje de error con la intruccion fk etc. etc
lo cual no quiero que aparezca porque el usuario no entiende que significa

gracias de todas formas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA CON RAISERROR EN SQL SERVER 2000

Publicado por nei (5 intervenciones) el 15/01/2010 23:50:37
me dicen que sql server 2000 no soporta el raiserror, que puedo usar?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de roger

RE:AYUDA CON RAISERROR EN SQL SERVER 2000

Publicado por roger (173 intervenciones) el 16/01/2010 02:00:09
sql server 2000 si soporta raiseerror
http://msdn.microsoft.com/en-us/library/aa238452(SQL.80).aspx, si no te entra al if de seguro es porque no ha ocurrido ningun error, en realidad que es lo que deseas hacer???, para ver si podemos colaborar mejor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA CON RAISERROR EN SQL SERVER 2000

Publicado por nei (5 intervenciones) el 19/01/2010 00:10:18
lo que pasa que estoy trabajando con visual studio .net 2008 pero cuando intento dar de alta un registro que tiene clave foranea me manda un mensaje que dice instruccion insert en conflicto con la restriccion foreign key etc. etc. pero no quiero que me aparezca eso porque el usuario no lo va a entender mas bien queria personalizar el mensaje para que dijera algo como "Error al dar de alta el registro verifique que el id exista en la tabla principal"

Gracias por querer ayudarme
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de roger

RE:AYUDA CON RAISERROR EN SQL SERVER 2000

Publicado por roger (173 intervenciones) el 19/01/2010 14:18:17
te recomiendo que hagas uso de excepciones en .net, mira este enlace
http://blogs.msdn.com/tomholl/archive/2007/08/01/mapping-sql-server-errors-to-net-exceptions-the-fun-way.aspx
Como veras el SqlException trae un numero de error, y el 547 corresponde a error de foreign key
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar