Quiero copiar datos de una columna a otra columna de otra tabla. ¿Cómo puedo hacer eso?
Intenté lo siguiente:
Update tblindiantime Set CountryName =(Select contacts.BusinessCountry From contacts)
Pero no funcionó.
Quiero copiar la columna "BusinessCountry" de la tabla de contactos a la columna "CountryName" de la tabla tblindiantime.
Respuestas:
En SQL Server 2008, puede utilizar una actualización de varias tablas de la siguiente manera:
UPDATE tblindiantime SET tblindiantime.CountryName = contacts.BusinessCountry FROM tblindiantime JOIN contacts ON -- join condition here
Necesita una condición de combinación para especificar qué fila debe actualizarse.
Si la tabla de destino está actualmente vacía, entonces debería usar un INSERTAR en su lugar:
INSERT INTO tblindiantime (CountryName) SELECT BusinessCountry FROM contacts
fuente
Aquí la consulta:
Misma Tabla:
UPDATE table_name SET column1 = column2
Mesa diferente:
UPDATE table_name1 SET column1 = ( SELECT column2 FROM table_name2 WHERE table_name1.id = table_name2.id );
fuente
Table2.Column2 => Table1.Column1
Me doy cuenta de que esta pregunta es antigua, pero la respuesta aceptada no me funcionó. Para los futuros usuarios de Google, esto es lo que funcionó para mí:
UPDATE table1 SET column1 = ( SELECT column2 FROM table2 WHERE table2.id = table1.id );
Por lo cual:
fuente
[Michael Pakhantsov]
Espero que tengas un campo clave en dos tablas.
UPDATE tblindiantime t SET CountryName = (SELECT c.BusinessCountry FROM contacts c WHERE c.Key = t.Key )
fuente
ORA-01427: single-row subquery returns more than one row
si la selección devuelve más de una fila, ¿qué pasa si quiero seleccionar más de una fila y actualizar la columna con estos valores?WHERE
. Por ejemplo, si tblindiantime tiene un campoContactID
, que es elID
de la fila a lacontacts
que pertenece cada fila en tblindiantime, entonces usaríaWHERE tblindiantime.ContactID=contacts.ID
. Vea la respuesta de cedrikdlb para otra variación.La respuesta de una pregunta similar funcionó más correctamente para mí que la respuesta seleccionada de esta pregunta (por Mark Byers). Usando la respuesta de Mark, mi columna actualizada obtuvo el mismo valor en todas las filas (quizás el valor de la primera fila que coincidió con la combinación). El uso de la respuesta de ParveenaArora del otro hilo actualizó la columna con los valores correctos.
Al transformar la solución de Parveena para usar los nombres de tabla y columna de esta pregunta, la consulta sería la siguiente (donde supongo que las tablas están relacionadas a través de tblindiantime.contact_id):
UPDATE tblindiantime SET CountryName = contacts.BusinessCountry FROM contacts WHERE tblindiantime.contact_id = contacts.id;
fuente
Creo que todas las respuestas anteriores son correctas, este código a continuación es muy válido, especialmente si tiene que actualizar varias filas a la vez, nota: es PL / SQL
DECLARE CURSOR myCursor IS Select contacts.BusinessCountry From contacts c WHERE c.Key = t.Key; --------------------------------------------------------------------- BEGIN FOR resultValue IN myCursor LOOP Update tblindiantime t Set CountryName=resultValue.BusinessCountry where t.key=resultValue.key; END LOOP; END;
Ojalá esto pudiera ayudar.
fuente
Ahora es más fácil con Management Studio 2016.
Usando SQL Server Management Studio
Para copiar datos de una tabla a otra
1. Abra la tabla con las columnas que desea copiar y en la que desea copiar haciendo clic derecho en las tablas y luego en Diseño .
2. Haga clic en la pestaña de la tabla con las columnas que desea copiar y seleccione esas columnas.
3. En el menú Editar , haga clic en Copiar .
4.Abra una nueva ventana del Editor de consultas.
5.Haga clic con el botón derecho en el Editor de consultas y luego haga clic en Diseñar consulta en el editor .
6. En el cuadro de diálogo Agregar tabla , seleccione la tabla de origen y destino, haga clic en Agregar y luego cierre el cuadro de diálogo Agregar tabla .
7. Haga clic con el botón derecho en un área abierta del Editor de consultas, seleccione Cambiar tipo y luego haga clic en Insertar resultados .
En el cuadro de diálogo Elegir tabla de destino para insertar resultados , seleccione la tabla de destino.
En la parte superior del Diseñador de consultas, haga clic en la columna de origen en la tabla de origen.
10. El Diseñador de consultas ha creado ahora una consulta INSERT. Haga clic en Aceptar para colocar la consulta en la ventana del Editor de consultas original.
11. Ejecute la consulta para insertar los datos de la tabla de origen en la tabla de destino.
Para obtener más información https://docs.microsoft.com/en-us/sql/relational-databases/tables/copy-columns-from-one-table-to-another-database-engine
fuente
Se puede resolver utilizando un atributo diferente.
fuente