Отключение ограничений перед созданием таблицы в SQL Server 2005 - PullRequest
0 голосов
/ 20 марта 2009

Можно ли отключить ограничения уникального и внешнего ключа перед созданием таблиц базы данных с использованием T-SQL ?. Как, например, в MySQL (протестировано в версии 5.1), если у вас есть сценарий SQL, который создает схему базы данных, вы можете поместить следующее:

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;

в начале скрипта (перед любым оператором CREATE TABLE), чтобы отключить упомянутые ограничения. Затем в конце скрипта вы можете использовать следующие, чтобы включить их снова.

/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;

Есть ли что-то похожее для SQL Server 2005?

1 Ответ

2 голосов
/ 20 марта 2009

Я не очень знаком с MySQL, но способ, которым я хотел бы приблизиться к тому, чего вы пытаетесь достичь в SQL Server, состоял бы в том, чтобы удалить определения ограничений из операторов create table, а затем добавить ограничения в конце сценария вдоль линий ниже.

Create table table1 (id int not null, val varchar(10))
Create table table2 (id int, t1id int, val varchar(10))

... Делать другие заявления

   Alter table table1 add 
        Constraint pk_table1 Primary Key (id)
    Alter table table2 Add 
        Constraint fk_table1 Foreign Key (t1id) References table1(id) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...