Sv Community El Salvador

Soporte y Tecnología => Programación => Base de Datos => Mensaje iniciado por: renji en diciembre 18, 2008, 09:51:57 am

Título: ayuda valores autoincrementables sql 2005
Publicado por: renji en diciembre 18, 2008, 09:51:57 am
Hola amigos de SVC

tengo una pregunta como se puede hacer un campo  autoincrementables
Ejm.
tengo la el campo empleado_codigo y cada ves q le de un INSERT baya ingrementando  :embarassed:  ayuda gracias

Saludos.
Título: Re: ayuda valores autoincrementales sql 2005
Publicado por: Maitro... en diciembre 18, 2008, 09:53:46 am
Pues segun me acuerdo yo eso se define cuando creas la tabla, luego solo vas insertanto los registros y automaticamente deberia de ir incrementando (1, 2, 3... N)

Hechate una googleada ;)

Código: [Seleccionar]
http://www.google.com.sv/search?hl=es&lr=lang_es&safe=off&sa=X&oi=spell&resnum=1&ct=result&cd=1&q=autoincrement+en+sql+2005&spell=1
Título: Re: ayuda valores autoincrementables sql 2005
Publicado por: renji en diciembre 18, 2008, 09:56:52 am
Pues segun me acuerdo yo eso se define cuando creas la tabla, luego solo vas insertanto los registros y automaticamente deberia de ir incrementando (1, 2, 3... N)

mmmmmm pero como ya la cree y no hay una opcion en las propiedades de SQL no se digo y por codigo como seria
Título: Re: ayuda valores autoincrementables sql 2005
Publicado por: vlad en diciembre 18, 2008, 10:12:07 am
Que tipo de servidor de base de datos? MySQL, Oracle, etc, etc...?
Título: Re: ayuda valores autoincrementables sql 2005
Publicado por: Camus de Acuario en diciembre 18, 2008, 10:13:30 am
mmmmmm pero como ya la cree y no hay una opcion en las propiedades de SQL no se digo y por codigo como seria

con codigo podria ser asi:

Código: [Seleccionar]
INSERT INTO tabla1
 (
 CODIGO,
 NOMBRE
 )
VALUES
(
 SELECT COALESCE(MAX(codigo),0) + 1 FROM tabla1,
 'renji'
)

lo que hace es tomar el maximo codigo y sumarle 1, para crear el nuevo codigo, coalesce te retorna cero si el primer valor es nulo (max(codigo)) esto por si no hay nada en esa tabla y al jalar max(codigo) no venga nulo y se le pueda sumar 1, en ese caso el codigo que insertaria es 1, luego 2, luego 3 y asi.......

si ocupas ORACLE, sustituye COALESCE por NVL

edit: lo acabo de probar en oracle y de ambas  formas sirve XD
Título: Re: ayuda valores autoincrementables sql 2005
Publicado por: renji en diciembre 18, 2008, 10:17:29 am
con codigo podria ser asi:

Código: [Seleccionar]
INSERT INTO tabla1
 (
 CODIGO,
 NOMBRE
 )
VALUES
(
 SELECT COALESCE(MAX(codigo),0) + 1 FROM tabla1,
 'renji'
)

lo que hace es tomar el maximo codigo y sumarle 1, para crear el nuevo codigo, coalesce te retorna cero si el primer valor es nulo (max(codigo)) esto por si no hay nada en esa tabla y al jalar max(codigo) no venga nulo y se le pueda sumar 1, en ese caso el codigo que insertaria es 1, luego 2, luego 3 y asi.......

si ocupas ORACLE, sustituye COALESCE por NVL

edit: lo acabo de probar en oracle y de ambas  formas sirve XD

SQL 2005
Título: Re: ayuda valores autoincrementables sql 2005
Publicado por: Camus de Acuario en diciembre 18, 2008, 10:29:03 am
probalo con coalesce que es la alternativa a sql del nvl de oracle, pense que era exclusivo de sql asi como nvl para oracle, pero en oracle tambien sirve
Título: Re: ayuda valores autoincrementables sql 2005
Publicado por: ruiz en diciembre 18, 2008, 11:06:37 am
ya el sql ya tra esa funcion

CREATE TABLE new_employees
(
id_num int IDENTITY(1,1),
fname varchar (20),
minit char(1),
lname varchar(30)
)

para insertar


INSERT new_employees
(fname, minit, lname)
VALUES
('Karin', 'F', 'Josephs')

no envias el campo autoincremantable el solo toma valor...
Título: Re: ayuda valores autoincrementables sql 2005
Publicado por: tekun en diciembre 18, 2008, 11:33:45 am
.....
CREATE TABLE new_employees
(
id_num int IDENTITY(1,1),
....

:) los campos identity son tu solución ....

aquí podes encontrar ayuda de como utilizarlos..
http://www.helpdna.net/sqlserver_faq_06_autonumericos_identity.htm (http://www.helpdna.net/sqlserver_faq_06_autonumericos_identity.htm)
Título: Re: ayuda valores autoincrementables sql 2005
Publicado por: renji en diciembre 18, 2008, 11:45:31 am
esas opciones no aparecen  x_x x_x x_x
http://img150.imageshack.us/my.php?image=dibujofw4.jpg (http://img150.imageshack.us/my.php?image=dibujofw4.jpg)
Título: Re: ayuda valores autoincrementables sql 2005
Publicado por: tekun en diciembre 18, 2008, 11:56:25 am
ahhhhh no te creo.... :shock:


dejame ver....
(http://img156.imageshack.us/img156/733/dibujofw4xl9.jpg)

tambíen ojo con el tipo de datos.... en un tipo varchar que incremento esperas?¿
Título: Re: ayuda valores autoincrementables sql 2005
Publicado por: renji en diciembre 18, 2008, 02:51:43 pm
 :D :D :D ok gracias   :thumbsup:
Título: Re: ayuda valores autoincrementables sql 2005
Publicado por: fran en diciembre 22, 2008, 04:44:26 pm
Hola puedes crear una consulta en la tabla donde lo quieras incrementar en 1 esto puede servirte
creas una variable idincremento luego a la hora de insertar los valores inserta  idincremento donde corresponde espero ayude :thumbsup:

    String url = "jdbc:mysql://localhost/comercial?user=root&password=root";
            Connection con;
            String cade;
            cade="SELECT max(idcuotas) as maximoidproducto FROM `cuotas`";
           
            Statement stmt;           
                     
            try {
               con = DriverManager.getConnection(url, "root", "root");
               stmt = con.createStatement();      
               ResultSet rs = stmt.executeQuery(cade);
               
               while(rs.next()){               
                  int valor=(rs.getInt(1));
                  idincremento=valor+1;
               }       
               stmt.close();           
               con.close();     
            }
                catch(SQLException ex) {
                  JOptionPane.showMessageDialog(this,ex,"ERROR",JOptionPane.ERROR_MESSAGE);
                 
               }
Título: Re: ayuda valores autoincrementables sql 2005
Publicado por: karleix en enero 04, 2009, 03:23:15 am
Usa un campo Identity por lo general yo los usos con campos decimales o numeric