Я хочу отбросить все ограничения таблиц, которые у меня есть.
Поскольку это невозможно в SQL Server, я создал сценарий (основанный на чем-то, найденном в сети), который динамически создает операторы drop в результате операции Select:
SELECT 'ALTER TABLE ' + TABLE_SCHEMA + '.[' + TABLE_NAME + '] DROP CONSTRAINT [' + CONSTRAINT_NAME + ']'
FROM information_schema.table_constraints
WHERE CONSTRAINT_TYPE = 'FOREIGN KEY'
AND TABLE_NAME LIKE 'Old_%''
Это сделано, я не могу найти, как его проанализировать и выполнить в цикле.
Моя попытка состоит в том, чтобы создать курсор, подобный этому, но я понятия не имею, чтобы заставить его выполнять каждую строку:
DECLARE @AlterTables nvarchar(2000)
SET @AlterTables = 'DECLARE Dyn_cursor CURSOR
FOR SELECT ''ALTER TABLE '' + TABLE_SCHEMA + ''.['' + TABLE_NAME + ''] DROP CONSTRAINT ['' + CONSTRAINT_NAME + '']''
FROM information_schema.table_constraints
WHERE CONSTRAINT_TYPE = ''FOREIGN KEY''
AND TABLE_NAME LIKE ''Old_%'''
Exec(@AlterTables)
Open Dyn_Cursor
FETCH NEXT FROM Dyn_Cursor INTO @name
WHILE @@FETCH_STATUS = 0
BEGIN
END
Close Dyn_cursor
Deallocate Dyn_cursor
Заранее спасибо, у кого есть решение для этого!
ура
J.