varios varias una tabla restriccion registros insertar ejemplos datos columnas columna check agregar actualizar sql sql-server sql-update

una - Actualice varias columnas en SQL



insertar datos en una tabla sql server (12)

Hice esto en MySql y actualizó varias columnas en un solo registro, así que intente esto si está utilizando MySql como su servidor:

"UPDATE creditor_tb SET credit_amount=''" & CDbl(cur_amount) & "'' , totalamount_to_pay=''" & current_total & "'', WHERE credit_id=''" & lbcreditId.Text & "''".

Sin embargo, estaba codificando en vb.net usando el servidor MySql, pero puede llevarlo a su lenguaje de programación favorito siempre que use MySql como su servidor.

¿Hay alguna forma de actualizar varias columnas en el servidor SQL de la misma manera que se utiliza una instrucción de inserción?

Algo como:

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

O algo así, en lugar de algo así:

update table set a=t2.a,b=t2.b etc

lo cual puede ser muy tedioso escribir si tienes más de 100 columnas.


La "manera tediosa" es SQL estándar y cómo lo hacen los RDBMS convencionales.

Con más de 100 columnas, lo más probable es que tenga un problema de diseño ... también, existen métodos atenuantes en las herramientas del cliente (por ejemplo, generación de instrucciones UPDATE) o mediante el uso de ORM


La sintaxis Update table1 set (a,b,c) = (select x,y,x) es un ejemplo del uso de constructores de valores de fila, Oracle lo admite , MSSQL no. ( Conectar elemento )


Lo intenté de esta manera y está funcionando bien:

UPDATE Sub2 SET SLNNOND = Sub.SLNNOND, Sub2.SLNNONF = Sub.SLNNONF FROM #TEMP Sub2


Prueba esto:

UPDATE table1 SET a = t2.a, b = t2.b, ....... FROM table2 t2 WHERE table1.id = t2.id

Eso debería funcionar en la mayoría de los dialectos SQL, excluyendo Oracle.

Y sí, es mucho tipeo, es la forma en que SQL hace esto.


Si necesita volver a escribir esto varias veces, puede hacer lo mismo que hice una vez. Obtenga los nombres de sus columnas en filas en la hoja de Excel (anote al final de cada nombre de columna (=) que es fácil en el bloc de notas ++) en el lado derecho haga una columna para copiar y pegar el valor que corresponderá a las nuevas entradas en cada columna Luego, a la derecha de ellos en una columna independiente, coloque las comas como se diseñaron

Luego, deberá copiar sus valores en la columna central cada vez, luego simplemente pegar y ejecutar

No conozco una solución más fácil


Tu consulta es casi correcta. El T-SQL para esto es:

UPDATE Table1 SET Field1 = Table2.Field1, Field2 = Table2.Field2, other columns... FROM Table2 WHERE Table1.ID = Table2.ID


aquí hay uno que funciona:

UPDATE `table_1` INNER JOIN `table_2` SET col1= value, col2= val,col3= val,col4= val;

valor es la columna de la tabla_2


Sintaxis

UPDATE table-name SET column-name = value, column-name = value, ... WHERE condition

Ejemplo

UPDATE school SET course = ''mysqli'', teacher = ''Tanzania'', student = ''you'' WHERE id = 6


UPDATE t1 SET t1.a = t2.a, t1.b = t2.b, . . . FROM table1 t1 INNER JOIN table2 t2 ON t1.id=t2.id

Puedes intentar esto



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