Удаление данных из таблиц
За ранее спасибо!
Каждая таблица имеет общее для всех поле, за каким и идёт удаление. За ранее спасибо!
Не совсем понятно что значит "поле за каким и идет удаление"?
Еще вопрос. В таблицах из которых удаляются данные есть поля, которые являются FK для других таблиц? Если нет, то все просто.
Насколько мне известно оператор delete не позволяет удалять сразу из нескольких таблиц, поэтому пишешь запрос на удаление из одной таблицы, название таблицы передаешь в запрос параметром. Организуешь цикл по именам таблиц. Выпорлняешь запрос в цикле. Все.
Я бы сказал, что пришло время задуматься о проектировании базы :)
Сделать это не проблема, но удаляться будет долго
Не совсем понятно что значит "поле за каким и идет удаление"?
Еще вопрос. В таблицах из которых удаляются данные есть поля, которые являются FK для других таблиц? Если нет, то все просто.
Насколько мне известно оператор delete не позволяет удалять сразу из нескольких таблиц, поэтому пишешь запрос на удаление из одной таблицы, название таблицы передаешь в запрос параметром. Организуешь цикл по именам таблиц. Выпорлняешь запрос в цикле. Все.
У меня каждая таблица имеет общее для всех поле (одинаково называется), но таблици не объединены. помоги пожалуйста сделать этот запрос, а именно как извлечь по одиночке названия таблиц, которые входят в БД? Названия таблиц не параметрические, тоесть не отличаються на один символ и т.п.
У меня каждая таблица имеет общее для всех поле (одинаково называется), но таблици не объединены. помоги пожалуйста сделать этот запрос, а именно как извлечь по одиночке названия таблиц, которые входят в БД? Названия таблиц не параметрические, тоесть не отличаються на один символ и т.п.
Вот интересно, ты хочешь чтобы тебе помогли, но ничего не указываешь...ни субд, ни на чем клиента пишешь, ни как организуешь выполнение запросов. Как после этого говорить что-то конкретное, есть ведь мнного способов?
Например в BCB 6:
ADOConnection->GetTableNames(TableNames);
Например в VS .NET 2003:
new object[] {null, null, null, "TABLE"});
Например в хран.проц. MS SQL:
Конкретнее надо вопрос задавать.
Вот интересно, ты хочешь чтобы тебе помогли, но ничего не указываешь...ни субд, ни на чем клиента пишешь, ни как организуешь выполнение запросов. Как после этого говорить что-то конкретное, есть ведь мнного способов?
Например в BCB 6:
ADOConnection->GetTableNames(TableNames);
Например в VS .NET 2003:
new object[] {null, null, null, "TABLE"});
Например в хран.проц. MS SQL:
Конкретнее надо вопрос задавать.
Извиняюсь за неконкретность. Мне необходимо написать запрос на SQL.
Этот код выводит все записи из таблици sysobjects за условием что поле xtype = 'U'. А мне необходимо из всех таблиц одновременно (каким-то вложеным запросом видимо) удалить те поля, которые попадают под опредилённое условие. Название таблиц неизвестно (итзвестно, что их больше 200), а также что поле за которым удаляется запись - одинаковое для всех таблиц (одинаково называется)
Извиняюсь за неконкретность. Мне необходимо написать запрос на SQL.
Этот код выводит все записи из таблици sysobjects за условием что поле xtype = 'U'. А мне необходимо из всех таблиц одновременно (каким-то вложеным запросом видимо) удалить те поля, которые попадают под опредилённое условие. Название таблиц неизвестно (итзвестно, что их больше 200), а также что поле за которым удаляется запись - одинаковое для всех таблиц (одинаково называется)
Нет этот код выводит названия всех таблиц в твоей БД.
declare @Script nvarchar(250)
declare cur cursor local read_only forward_only static for
select
[Name]
from
sysobjects
where
xtype = 'U'
open cur
fetch next from cur into @TableName
while @@fetch_status = 0 begin
set @Script = 'delete from '+ @TableName
exec sp_executesql @Script
fetch next from cur into @TableName
end
close cur
deallocate cur