Problemas con store procedure

27/09/2003 - 21:42 por Fernando | Informe spam
Hola grupo tengo que actualizar una tabla (Socios) mediante un sp que recibe
como parametros todos los datos. El problema es que uno de los datos tiene
una referencia a otra tabla(Osocial) y quiero guardar en mi tabla el Id del
dato no la descripcion para mantener la integridad referencial. Intente algo
asi pero da error.
Alguna sugerencia...
Saludos
Fernando
CREATE PROCEDURE [UpdateDatos]
(@HC [int],
@Apellido [nvarchar](30),
@TD [nvarchar](3),
@NDoc [int],
@Direccion [nvarchar](35),
@Localidad [nvarchar](25),
@FeNac [datetime],
@FeIng [datetime],
@OSocial [nvarchar](35),
@Tel [nvarchar](12))
AS
DECLARE @IdOSocial int
SELECT [IdOs]
FROM [Consultorio].[dbo].[OSocial]
WHERE Descripcion = @OSocial
SET @IdOSocial = [IdOs]

UPDATE [Consultorio].[dbo].[Socios]

SET
[ApellidoYNombre] = @Apellido,
[TD] = @TD,
[NDOC] =@NDoc,
[DIRECCION] =@Direccion,
[LOCALIDAD] =@Localidad,
[FENAC] =@FeNac,
[FEING] =@FeIng,
[OSOCIAL] =@IdOSocial,
[TEL] =@Tel

WHERE
( [HC] = @HC)
GO
 

Leer las respuestas

#1 Gustavo Larriera [MVP]
28/09/2003 - 00:36 | Informe spam
Prueba a almacenar el valor en una variable, similar a esto:

CREATE PROCEDURE [UpdateDatos]
(@HC [int],
@Apellido [nvarchar](30),
@TD [nvarchar](3),
@NDoc [int],
@Direccion [nvarchar](35),
@Localidad [nvarchar](25),
@FeNac [datetime],
@FeIng [datetime],
@OSocial [nvarchar](35),
@Tel [nvarchar](12))
AS
DECLARE @IdOSocial int

SELECT @IdOSocial = [IdOs]
FROM [Consultorio].[dbo].[OSocial]
WHERE Descripcion = @OSocial

UPDATE [Consultorio].[dbo].[Socios]

SET
[ApellidoYNombre] = @Apellido,
[TD] = @TD,
[NDOC] =@NDoc,
[DIRECCION] =@Direccion,
[LOCALIDAD] =@Localidad,
[FENAC] =@FeNac,
[FEING] =@FeIng,
[OSOCIAL] =@IdOSocial,
[TEL] =@Tel

WHERE
( [HC] = @HC)
GO


Gustavo Larriera, MSFT MVP-SQL
Uruguay LatAm

***IMPORTANTE*** Microsoft Security Bulletin MS03-039
http://www.microsoft.com/security/s...03-039.asp

This message is provided "AS IS" with no warranties expressed or implied,
and confers no rights.


"Fernando" wrote in message
news:%
Hola grupo tengo que actualizar una tabla (Socios) mediante un sp que


recibe
como parametros todos los datos. El problema es que uno de los datos tiene
una referencia a otra tabla(Osocial) y quiero guardar en mi tabla el Id


del
dato no la descripcion para mantener la integridad referencial. Intente


algo
asi pero da error.
Alguna sugerencia...
Saludos
Fernando
CREATE PROCEDURE [UpdateDatos]
(@HC [int],
@Apellido [nvarchar](30),
@TD [nvarchar](3),
@NDoc [int],
@Direccion [nvarchar](35),
@Localidad [nvarchar](25),
@FeNac [datetime],
@FeIng [datetime],
@OSocial [nvarchar](35),
@Tel [nvarchar](12))
AS
DECLARE @IdOSocial int
SELECT [IdOs]
FROM [Consultorio].[dbo].[OSocial]
WHERE Descripcion = @OSocial
SET @IdOSocial = [IdOs]

UPDATE [Consultorio].[dbo].[Socios]

SET
[ApellidoYNombre] = @Apellido,
[TD] = @TD,
[NDOC] =@NDoc,
[DIRECCION] =@Direccion,
[LOCALIDAD] =@Localidad,
[FENAC] =@FeNac,
[FEING] =@FeIng,
[OSOCIAL] =@IdOSocial,
[TEL] =@Tel

WHERE
( [HC] = @HC)
GO



Preguntas similares