SQL Server - Borrar registros en sql server

 
Vista:

Borrar registros en sql server

Publicado por volar2016 (1 intervención) el 31/10/2019 10:26:16
Hola:

Tengo un tipo de datos

1
2
3
4
5
6
7
CREATE TYPE [dbo].[agendas] AS TABLE(
	[id0] [int] NOT NULL,
	[que] [nvarchar](25) NOT NULL,
	[finicio] [date] NOT NULL,
	[ffin] [date] NOT NULL,
	[importe] [money] NOT NULL,
	[descripcion] [nvarchar](max) NOT NULL

y una tabla

1
2
3
4
5
6
7
8
CREATE TABLE [dbo].[eventos publico](
	[ep0] [int] IDENTITY(1,1) NOT NULL,
	[ep1] [int] NOT NULL,
	[nombre] [nvarchar](25) NOT NULL,
	[finicio] [date] NOT NULL,
	[ffin] [date] NOT NULL,
	[importe] [money] NOT NULL,
	[descripcion] [nvarchar](max) NOT NULL,

Cuando edito registros en mi página aspx, mando la clave primario juntos con dichos registros. Mando un 0 si se trata de una adición, SI se trata de una baja, la clave primaria no la mando,

Hago

1
update dbo.[eventos publico] set nombre=que,finicio=o.finicio,ffin=o.ffin,importe=o.importe,descripcion=o.descripcion from @agendas o inner join dbo.[eventos publico] on ep0=o.id0

para actualizar. Lo hace bien

1
insert dbo.[eventos publico] (ep1,nombre,finicio,ffin,importe,descripcion) select @id0,que,finicio,ffin,importe,descripcion from @agendas o where id0=0

para insertar. Lo hace bien.

1
delete dbo.[eventos publico] from @agendas o left join dbo.[eventos publico] on ep0=o.id0 where ep1=@id0 and ep0 is null and o.id0>0

para borrar. Lo hace mal. Quiero que me borre los registros no añadidos (id0=0) y que no tengan correspondencia, cuya clave primaria no esté.

No sé cómo hacer,

Muchísimas gracias por cualquier 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 Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Borrar registros en sql server

Publicado por Isaias (4558 intervenciones) el 31/10/2019 18:27:20
¿Porque esta comparacion and o.id0>0?

No deberia ser: o.id0=0
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