Как копировать CONSTRAINT and INDEX

YuriAM
Дата: 13.12.2002 11:28:08
Создана структурная копия (DestTable) имеющиеся (SourceTable) таблицы .
Как копировать все CONSTRAINT and INDEX из SourceTable на DestTable. используя системные таблицы?
Glory
Дата: 13.12.2002 12:40:58
Нужно создать скрипт для генерации CONSTRAINT и INDEX.
Можно на основе системных таблиц и/или INFORMATION_SCHEMA.
А можно сразу при создании копии таблицы.
YuriAM
Дата: 13.12.2002 13:25:58
To Glory

Script при копировании вообще то опасная штука.
Если до момента копирования что то изменился....

А что имеете ввиду - "можно сразу при создании копии таблицы"


"на основе системных таблиц и/или INFORMATION_SCHEMA. " - есть что то на готове? Я начал, только анализировать слишком много приходиться и оставил .
Glory
Дата: 13.12.2002 13:43:24
Не понимаю вас - CONSTRAINT и INDEX не копируются отдельно, они создаются командами DDL. Если вы создаете таблицу с помощью CREATE TABLE, то что вам мешает сразу же указать CONSTRAINT-ы и INDEX-ы ?

Если же вы хотите сгенирировать DDL команды для создания CONSTRAINT и INDEX, то можно воспользоваться информацией например из

SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
SELECT * INFORMATION_SCHEMA.KEY_COLUMN_USAGE
SELECT * FROM INFORMATION_SCHEMA.CHECK_CONSTRAINTS

или

из системнымных таблиц(sysobjects, syscolumsn, sysindxes, sysconstraints) и процедур(sp_help, sp_helpconstraint, ... )
YuriAM
Дата: 13.12.2002 14:01:11
Дело в том , что таблицы генерируються в цикле с помощью
SELECT INTO
Вообще то хочу сделать нечто обобщенное копирующее БД -> БД
которое дала бы возможность изменить данные ( допустим взять не все )
в процессе копирования, используя sysreferences, определяя элемент только в корневой связке исключить все его вхождения .
Glory
Дата: 16.12.2002 12:45:06
Вообще то хочу сделать нечто обобщенное копирующее БД -> БД \r
Может быть лучше в таком случае "совместить" TSQL и SQLDMO, например, как здесь