![]() |
Copiar campo SQL a otro dentro de la misma DB Hola a todos, alguien sabe como copiar un campo de una base de datos SQL a otro, o sea, supongamos que tenemos un campo "CAMPO1" y quiero que la misma info se mueva a otro campo "CAMPO2" dentro de la misma DB y dentro de la misma tabla, algo asi como Duplicar campos, espero me puedan ayudar pues me urge.... saludos a todos y de antemano muchas gracias ashketchum |
abrís un recordset como siempre y luego, usando la misma conexión y suponiendo que tengas un campo identificador llamado ID... do while not rs.eof SQL = "UPDATE tabla SET CampoDuplicado = CampoOriginal WHERE ID = " & rs("ID") objConn.Execute(SQL) rs.MoveNext Loop (es a manera de ejemplo... no veriifiqué sintaxis ni nada) |
Gracias Dazuaga, intente hacerlo pero me manda este error: ADODB.Recordset error '800a0e78' La operación no está permitida si el objeto está cerrado. /alpha/variosash/copiacampo.asp, línea 8 espero me puedas ayudar... saludos!!! |
bueno... pero no te olvides que fue sólo un ejemplo. para ayudarte en base a lo que te pasé de ejemplo necesito ver tu código completo |
Mira de hecho mi código es el siguiente y lo que quiero hacer es copiar de una columna a otra dentro de la misma tabla, o sea, creo que es sencillo, pero como son muchos registros quiero ver si hay algo más fácil para no copiar de uno en uno este es el código: <%@LANGUAGE="VBSCRIPT"%> <% Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "driver={SQL Server};server=xxxx;uid=xxx;pwd=xxx;database=xxx" set rs = Server.CreateObject("ADODB.Recordset") rs.Open %> <% SQL = "Update Escolaridad Set SoftwareTest = SoftWareHardwareSO Where IDNumeroCurriculum = " & rs("IDNumeroCurriculum") Do while not rs.EOF Conn.Execute(SQL) rs.MoveNext Loop %> Gracias y saludos!!!! |
La SQL va dentro del DO Do while not rs.EOF SQL = "Update Escolaridad Set SoftwareTest = SoftWareHardwareSO Where IDNumeroCurriculum = " & rs("IDNumeroCurriculum") Conn.Execute(SQL) rs.MoveNext Loop |
ahh.. además falta algo. no estás ejecutando nada en el recordset... el código debería quedar más o menos así: <%@LANGUAGE="VBSCRIPT"%> <% Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "driver={SQL Server};server=xxxx;uid=xxx;pwd=xxx;database=xxx" set rs = Server.CreateObject("ADODB.Recordset") SQLtmp = "SELECT IDNumeroCurriculum FROM Escolaridad" rs.Open SQL, Conn '### o similar... no me acuerdo de memoria %> <% Do while not rs.EOF SQL = "Update Escolaridad Set SoftwareTest = SoftWareHardwareSO Where IDNumeroCurriculum = " & rs("IDNumeroCurriculum") Conn.Execute(SQL) rs.MoveNext Loop %> |
Muchas gracias Dazuaga por toda la ayuda, pero fijate que me sigue mandando un error es este: ADODB.Recordset error '800a0cc1' No se encontró el elemento en la colección que corresponde con el nombre o el ordinal pedido. /alpha/variosash/copiacampo.asp, línea 11 y no se porque... de antemano muchas gracias por la ayuda. saludos y suerte ashketchum |
ya se porque tronaba, era porque habia olvidado incluir el campo IDNumeroCurriculum en el Select, y aunque lo puse ahora me sale este error: Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC SQL Server Driver][SQL Server]Disallowed implicit conversion from data type ntext to data type varchar, table 'ModeloEspana.dbo.Escolaridad', column 'SoftwareTest'. Use the CONVERT function to run this query. /alpha/variosash/copiacampo.asp, línea 12 ahora le dare un poco al google y vere que hay sobre la función CONVERT saludos y suerte ashketchum |
porque parece que SoftwareTest no tiene el mismo tipo de datos que SoftWareHardwareSO al menos eso es lo que entiendo del mensaje de error. |
Si, de hecho el problema es que el primer campo es de tipo NTEXT y lo quiero a VARCHAR porque el NTEXT me esta dando mucha lata en mi busqueda, pero a ver si se puede... saludos y suerte ashketchum |
Re: Copiar campo SQL a otro dentro de la misma DB y si fueran diferentes tablas? quiero copiar un campo de una tabla, a otro campo de otra tabla, .... :) |
Re: Copiar campo SQL a otro dentro de la misma DB Este post tiene 5 años de abandonado, inicia un nuevo post con una duda nueva |
| La zona horaria es GMT -6. Ahora son las 01:04. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.