2009-02-19 4 views
0

Есть ли способ вставить динамическое количество строк из SQL-сервера (скрипт .sql) с учетом значения поиска и установки одного столбца для каждой вставки? Я хочу прикрепить строку с внешним ключом каждой строки в другой таблице.Вставка динамического числа строк в SQL Server

Например:

table 1: 
1 j k l m n 2-(fk) 
2 j k l m n 3-(fk) 
3 k u y k l 2-(fk) 


table 2: 
2 hi you 
3 hey ho 

Теперь сказать, что я хотел бы добавить 2 строки в таблице 1, со значениями Fk из таблицы 2, 2 и 3.

Так финальный стол будет выглядеть так:

table 1: 
1 j k l m n 2-(fk) 
2 j k l m n 3-(fk) 
3 k u y k l 2-(fk) 
4 a a a a a 3-(fk) 
5 a a a a a 2-(fk) 

С языком программирования это было бы легко. Psuedo: Для (строки в таблице 2) DO Вставить в таблицу 1 'a a a a rows.id'

Как это можно сделать на сервере sql?

Edit:

Для каждой строки в таблице 2, получить его идентификатор, установить его в качестве Ф.К. в строке для таблицы 1, и вставить его.

ответ

3
insert [table 1] 
select 'a','a',a','a','a', fk 
from [table 2] 
+0

извинения, комментарий удален. Я не понимал, что вы написали, пока я не перечитаю. –

-1

Хорошо, кто-то пришел и показал мне способ сделать это ...

insert into table_one 
select col1 = 'a', 
    col2 = 'b', 
    col3 = 'c', 
    col4fk, 
    col5 = 'k' 
from table2 

Это только выбор col4fk из таблицы 2, до тех пор, как это имеет такое же имя, что и столбец в Таблица 1.

+0

Это практически тот же запрос, который я разместил ... имя, определяющее столбцы в вставке ... select не имеет смысла, он использует упорядочение столбцов, вы можете указать insert в таблицу (a, b, c), если вы хотите обеспечить упорядочение верно –