2015-05-05 2 views
0

У меня есть таблица A и таблица B, таблица B имеет те же столбцы A и только один дополнительный столбец x, я хочу вставить некоторые строки из От A до B, а затем я хочу обновить каждую из этих вставленных строк новым значением для столбца x.Вставьте несколько строк из другой таблицы и получите идентификаторы вставленных строк в SQL Server 2000

Как это сделать в SQL Server 2000?

Теперь я использую этот запрос в C# код, я выбираю все требуемые строки из A, и я сохранить его в DataTable

string Query = "Select * from A where ID = 5"; 

SqlDataAdapter dap = new SqlDataAdapter(Query, Conn); 
dap.Fill(DataTablle1); 

foreach (DataRow row in DataTablle1.Rows) 
{ 
     string query2 = "Insert into B (col a , col b, col x) values ('" + row["col a"] + "','" + row["col b"] + "',3)"; 
} 

Этот способ требует много оператора вставки в зависимости от количества строк в таблице А, есть ли способ достичь этого с минимальным количеством операторов вставки?

+0

что вы пытаетесь сделать .. когда первый стол был возвращен вы можете перебрать DataTable1.Rows, как вы уже с исключением, когда вы пытаетесь обновить 'DataTable1.Rows [Y] [" X "], вам нужно будет сделать это во внутреннем цикле for ... там вы присвойте значения пустым строкам datatable' string query2' что вы хотите сделать с этим .. вы не показываете, что вы пытаетесь сделать – MethodMan

+0

Я перебираю DataTable, чтобы вставить его значения в таблицу B. Теперь, если у меня в DataTable около 100 строк, будет 100 insert в таблице B, мой вопрос: есть ли какая-либо другая w ay, чтобы вставить эти 100 строк с минимальной инструкцией вставки, например, например, insert select statement? – user1947393

ответ

0

Вы могли бы просто иметь вставки, выберите заявление с буквальным 3:

INSERT INTO b ([col a] , [col b], [col x]) 
SELECT [col a], [col b], 3 
FROM a 
WHERE id = 5 
Смежные вопросы