Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 как на TSQL по имени таблицы, удалить все внешние ключи ссылающиеся на нее?  [new]
teepok
Member

Откуда:
Сообщений: 361
Добрый день.
Проблема в том, что при желании DROP table вылетает ошибка если на какие то поля этой таблицы есть ссылки с других таблиц. Хотелось бы иметь скрипт который перед удалением таблицы удалит все ссылки на нее. Список всех внешних ключей придумал как получить:
SELECT constraint_name
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE (constraint_type='FOREIGN_KEY') and (constraint_name like '%_MyTable')

а вот как бы их следом все грохнуть не знаю. Хотя может все это можно сделать проще?
18 ноя 08, 12:20    [6454271]     Ответить | Цитировать Сообщить модератору
 Re: как на TSQL по имени таблицы, удалить все внешние ключи ссылающиеся на нее?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
Следом курсор с alter table ... drop constraint ...
18 ноя 08, 12:26    [6454315]     Ответить | Цитировать Сообщить модератору
 Re: как на TSQL по имени таблицы, удалить все внешние ключи ссылающиеся на нее?  [new]
teepok
Member

Откуда:
Сообщений: 361
Гавриленко Сергей Алексеевич,

Ну да, единственное что приходило в голову пройтись по курсору.
Наверно проще никак не получится.
Спасибо.
18 ноя 08, 12:34    [6454387]     Ответить | Цитировать Сообщить модератору
 Re: как на TSQL по имени таблицы, удалить все внешние ключи ссылающиеся на нее?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Или слепить строку вида:

ALTER TABLE ... DROP CONSTRAINT C1, C2, ..., Cn 

и выполнить ее.
18 ноя 08, 12:57    [6454572]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: как на TSQL по имени таблицы, удалить все внешние ключи ссылающиеся на нее?  [new]
marinad1
Guest
А что значит "пройтись по курсору"?
19 май 14, 17:46    [16038590]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить