Jeje, esa firma me saco de varios problemas operativos... :p
Pues podrías empezar con lo mas simple.... entendiendo un poco tu lógica sería algo como esto....
Código:
Create Procedure SpInsertaEscucha
(
@IdEscucha As Integer,
@IdBoletin As Integer,
@Nota As VarChar(255), --Solo una suposicion
@Fecha As DateTime
)As
/*Primero verificar que existe el boletín para el que va la escucha*/
If Not Exists(Select 1 From Boletin Where IdBoletin = @IdBoletin) Begin
RaiseError('No existe boletin', 5000, 1) --Manejador de errores, esto solo es una alternativa
End
/*buscar si ya existe la escucha*/
If Exists(Select 1 From Escuchas Where IdEscucha = @IdEscucha) Begin
/*ya existe, tenemos la opción de mandar error o actualizar.... lo que decida el cliente*/
End
Else Begin
/*No existe, hacer la inserción de la escucha*/
End
Declare @Sql As VarChar(1000),
@CampoUpd As VarChar(100)
Select @CampoUpd = Case /*Para obtener la primer escucha vacía*/
When NotaEscucha1 Is Null Then 'NotaEscucha1'
When NotaEscucha2 Is Null Then 'NotaEscucha2'
When NotaEscucha3 Is Null Then 'NotaEscucha3'
When NotaEscucha4 Is Null Then 'NotaEscucha4'
End
From Boletin
Where IdBoletin = @IdBoletin
Set @Sql = 'Update Boletin Set ' + @CampoUpd + ' = ' + Cast(@IdEscucha As VarChar) + ' Where IdBoletin = ' + Cast(@IdBoletin As VarChar)
Exec(@Sql)
Go
Saludos!