Обновление нескольких столбцов в SQL
Есть ли способ обновить несколько столбцов на сервере SQL так же, как используется оператор insert?
Что-то вроде:
Update table1 set (a,b,c,d,e,f,g,h,i,j,k)=
(t2.a,t2.b,t2.c,t2.d,t2.e,t2.f,t2.g,t2.h,t2.i,t2.j,t2.k)
from table2 t2
where table1.id=table2.id
Или что-то вроде этого, а не так:
update table set a=t2.a,b=t2.b etc
который может быть довольно утомительным для записи, если у вас есть более 100 столбцов.
Ответы
Ответ 1
"Утомленный путь" - это стандартный SQL и как это делают обычные РСУБД.
С столбцами 100+ у вас, скорее всего, проблема с дизайном... также существуют методы смягчения в клиентских инструментах (например, инструкции UPDATE для генерации) или с помощью ORM
Ответ 2
Попробуйте следующее:
UPDATE table1
SET a = t2.a, b = t2.b, .......
FROM table2 t2
WHERE table1.id = t2.id
Это должно работать в большинстве диалектов SQL, исключая Oracle.
И да - это много набрав - это так, как это делает SQL.
Ответ 3
Синтаксис Update table1 set (a,b,c) = (select x,y,x)
является примером использования
конструкторы row-value, Oracle поддерживает это, MSSQL этого не делает. (Подключить элемент)
Ответ 4
Ваш запрос почти правильный. T-SQL для этого:
UPDATE Table1
SET Field1 = Table2.Field1,
Field2 = Table2.Field2,
other columns...
FROM Table2
WHERE Table1.ID = Table2.ID
Ответ 5
Синтаксис
UPDATE table-name
SET column-name = value, column-name = value, ...
WHERE condition
Пример
UPDATE school
SET course = 'mysqli', teacher = 'Tanzania', student = 'you'
WHERE id = 6
Ответ 6
UPDATE t1
SET
t1.a = t2.a,
t1.b = t2.b,
.
.
.
FROM
table1 t1
INNER JOIN table2 t2 ON t1.id=t2.id
Вы можете попробовать это
Ответ 7
Я пробовал таким образом, и он работает нормально:
UPDATE
Emp
SET
ID = 123,
Name = 'Peter'
FROM
Table_Name
Ответ 8
вот что работает:
UPDATE `table_1`
INNER JOIN
`table_2` SET col1= value, col2= val,col3= val,col4= val;
Значение - столбец из таблицы_2
Ответ 9
Если вам нужно повторно ввести это несколько раз, вы можете сделать то, что я сделал один раз.
Получите имена столбцов в строках в листе excel (запишите в конце каждого имени столбца (=), который легко в блокноте ++), с правой стороны сделайте столбец для копирования и вставки вашего значения, которое будет соответствовать новым записям в каждый колонка. Затем справа от них в независимой колонке помещаются запятые как созданные
Затем вам придется копировать ваши значения в средний столбец каждый раз, а затем просто вставлять и запускать
Я не знаю более простого решения
Ответ 10
Я сделал это в MySql и обновил несколько столбцов в одной записи, поэтому попробуйте это, если вы используете MySql в качестве своего сервера:
"UPDATE creditor_tb SET credit_amount='" & CDbl(cur_amount) & "'
, totalamount_to_pay='" & current_total & "',
WHERE credit_id='" & lbcreditId.Text & "'".
Тем не менее, я был кодированием в vb.net с использованием сервера MySql, но вы можете перенести его на свой любимый язык программирования, насколько вы используете MySql в качестве своего сервера.
Ответ 11
UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;
http://www.w3schools.com/sql/sql_update.asp
Ответ 12
update T1
set T1.COST2=T1.TOT_COST+2.000,
T1.COST3=T1.TOT_COST+2.000,
T1.COST4=T1.TOT_COST+2.000,
T1.COST5=T1.TOT_COST+2.000,
T1.COST6=T1.TOT_COST+2.000,
T1.COST7=T1.TOT_COST+2.000,
T1.COST8=T1.TOT_COST+2.000,
T1.COST9=T1.TOT_COST+2.000,
T1.COST10=T1.TOT_COST+2.000,
T1.COST11=T1.TOT_COST+2.000,
T1.COST12=T1.TOT_COST+2.000,
T1.COST13=T1.TOT_COST+2.000
from DBRMAST T1
inner join DBRMAST t2 on t2.CODE=T1.CODE