SQL Server: возможно ли вставить в две таблицы одновременно? - PullRequest
127 голосов
/ 06 октября 2008

Моя база данных содержит три таблицы с именами Object_Table, Data_Table и Link_Table. Таблица ссылок содержит только два столбца: идентификатор записи объекта и идентификатор записи данных.

Я хочу скопировать данные из DATA_TABLE, где они связаны с одним указанным идентификатором объекта, и вставить соответствующие записи в Data_Table и Link_Table для другого заданного идентификатора объекта.

I может сделать это, выбрав в табличную переменную и циклически выполняя две вставки для каждой итерации.

Это лучший способ сделать это?

Редактировать : Я хочу избежать цикла по двум причинам: во-первых, я ленива и таблица цикла / температуры требует больше кода, чем больше кода, тем больше мест для ошибок и Вторая причина - это беспокойство по поводу производительности.

Я могу скопировать все данные в одну вставку, но как получить таблицу ссылок для ссылки на новые записи данных, где каждая запись имеет новый идентификатор?

Ответы [ 11 ]

0 голосов
/ 01 апреля 2011

// если вы хотите вставить то же самое, что и первая таблица

$qry = "INSERT INTO table (one, two, three) VALUES('$one','$two','$three')";

$result = @mysql_query($qry);

$qry2 = "INSERT INTO table2 (one,two, three) VVALUES('$one','$two','$three')";

$result = @mysql_query($qry2);

// или если вы хотите вставить определенные части таблицы один

 $qry = "INSERT INTO table (one, two, three) VALUES('$one','$two','$three')";


  $result = @mysql_query($qry);

 $qry2 = "INSERT INTO table2 (two) VALUES('$two')";

 $result = @mysql_query($qry2);

// я знаю, что это выглядит слишком хорошо, чтобы быть правым, но это работает, и вы можете продолжать добавлять запрос, просто изменив

    "$qry"-number and number in @mysql_query($qry"")

У меня есть 17 таблиц, в которых это работает.

...