1
я следующие SQL таблицы:Удалить все файлы в дочерних таблицах
create table dbo.Media (
Id int identity not null
constraint PK_Media_Id primary key clustered (Id),
Created datetime not null,
)
create table dbo.MediaFile (
MediaId int not null,
FileId int not null
)
create table dbo.[File]
(
Id int identity not null
constraint PK_File_Id primary key clustered (Id),
Content varbinary (max) filestream null
constraint DF_File_Content default (0x)
) filestream_on [FILE]
alter table dbo.MediaFile
add constraint FK_MediaFile_MediaId foreign key (MediaId) references [Media](Id) on delete cascade on update cascade,
constraint FK_MediaFile_FileId foreign key (FileId) references [File](Id) on delete cascade on update cascade;
Мне нужно удалить все медиа строки с датой Created старше 2 месяцев и MediaFile корреспонденты и строки файлов ... Так что у меня есть :
DELETE
FROM dbo.Media
WHERE Created < GETDATE() - 60
Моя проблема заключается в том, чтобы убедиться, что все записи MediaFile и File удалены.
Какова максимальная таблица родителей ваших трех таблиц? –
Не связаны ли ссылочные ограничения 'DELETE CASCADE'? Я ожидаю, что убедитесь, что связанные строки удалены во время операции. –
@DanGuzman Посмотрите внимательно, он удаляется из 'Media', а не' MediaFile'. –