Consulta de Actualización

Buenas tardes necesito ayuda acerca de una consulta que necesito realizar para actualizar muchos registros, lo que tengo es una tabla de proveedores en donde existe un campo que es el identificador el campo se llama vendid, estos campos tienen la siguiente característica
en la tabla se presentan así vendid = A00001, A00002 y así sucesivamente
lo que necesito ahora es que se presenten en este formato = AC000001, AC00001
ojala y me puedan ayudar.

1 Respuesta

Respuesta
1
En primer lugar tengo que decirte que no se qué tipo de bases de datos estás usando pero te paso un ejemplo de oracle.
Puedes usar alguna función que te devuelva N caracteres a partir de una posición, en este caso el campo ID es de 10 posiciones.
Antes de "romper" :), prueba como queda todo con un select
Select SUBSTR( ID,1,1) || 'C' || SUBSTR(ID, 2, 10) from TABLA.
El "||" en Oracle es la concatenación, similar al + del sqlserver/sybase, no se como será en tu base de datos.
El update queda así:
UPDATE TABLA SET ID= SUBSTR( ID,1,1) || 'C' || SUBSTR(ID, 2, 10)
La base de datos que estoy utilizando es SQL server mira ya utilize la instruccion que tu me diste pero no he tenido resultados la estoy utilizando de la siguiente manera
select sub str ('A0001,1,1) + 'C' + sub str ('A0001', 2,10) from vendor
vendor es el nombre de la tabla
A0001 es el formato en que yo tengo los datos
AC-0000001 es a los que los quiero cambiar
Uff, te había escrito todo en detalle y se pusieron a actualizar el sitio... :(
Te consultaba si es que la concatenación no general el código que estás buscando o bien te dio un error al querer actualizar.
La verdad que no tuve en cuenta que si tienes integridad referencial es muy probable que el ID de tu tabla de VENDEDORES sea referenciado por una tabla de VENTAS por ejemplo. Si es así no vas a poder cambiar porque sí nomas esos valores y hay que hacer otras tareas (deshabilitar constraints, actualizar el código en VENDEDORES y en VENTAS.
Si podes pásame más información del error.
Buenas tardes Experto mira he solucionado este problema, lo que se esta haciendo en la empresa es cambiar de ERP entonces nos pidieron que algunos datos les cambiáramos el formato es por eso que te pedía esa ayuda pero ya quedo ha y no esta referencido con nada.
Ahora quiero que me digas si puedo hacer esto mira resulta que en nuestra tabla de Proveedores, Acreedores, Bancos llamada vendor, tenemos un campo identificador que se llama Vendid que es con el que trabajamos, ok ese ya quedo, pero ahora tenernos un campo llamado ADDR que es en donde tenemos la dirección principal del proveedor, acreedor, pero lo tenemos así
Ave. Los Angeles No. 1000 Bodega 34 Col. San Nicolas
(Todo esto contenido dentro de un solo campo llamado ADDR)
El nuevo ERP quiere que tengamos el sig formato.
Dirección Numero Colonia (3 campos diferentes en lugar de uno)
Ave. Los Angeles 1000 bodega 34 Col. San Nicolas
Oye como hago para separlo y no tener que estar copy paste, ten en cuenta que son demasiados registros.
Entonces hasta acá llegamos :)
Lo que querés hacer necesita de expresiones regulares, tengo una mínima experiencia en Oracle (que está incorporado a su SQL) y creo que T-SQL del SQLserver no existe.
Te sugiero que busques información de expresiones regulares (te permiten buscar en forma muy potente) y luego veas estas páginas, que tratan de incorporar esas funciones a SQLServer.
http://www.codeproject.com/KB/mcpp/xpregex.aspx
http://www.codeproject.com/KB/string/SqlRegEx.aspx
Bueno días experto, hice lo que tu me recomendste y pude salir de el problema que tenia, te quiero dar las gracias por tu apoyo, por tus oportunas respuestas, este sitio me ha sido de gran ayuda siempre existe alguien que te quiera echar la mano gracias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas