Borrar registros en sql server
Publicado por volar2016 (1 intervención) el 31/10/2019 10:26:16
Hola:
Tengo un tipo de datos
y una tabla
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
para actualizar. Lo hace bien
para insertar. Lo hace bien.
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.
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


0