| |||
Como Incremento la clave primaria??????? Bueno. Hago esta pregunta porque busque pero no encuentro. Mi consulta es saber de que forma puedo setear en el motor del SQLServer 2005 para que se incremente la clave primaria de forma automatica. De esa forma no tengo que programar por codigo el incremento de la clave primaria al momento de insertar datos en las tablas. |
| ||||
Respuesta: Como Incremento la clave primaria??????? Necesitas un campo identity. Pero no es recomendable que un campo primario sea identity.
__________________ No repitamos temas, usemos el Motor de busquedas Plantea bien tu problema: Ayúdanos a ayudarte. |
| ||||
Respuesta: Como Incremento la clave primaria??????? No es la funcion la que no es recomendable, es como la usas... la función es muy buena. Saludos!
__________________ Hicimos un pacto con Dios... El no desarrolla Sistemas y nosotros no hacemos milagros.... |
| |||
Respuesta: Como Incremento la clave primaria??????? bueno, el campo identity es la solucion que buscabas CREATE TABLE estudiantes ( dni int IDENTITY(1,1), nombre varchar (20), carrera varchar(30) ) INSERT estudiantes (nombre, carrera) VALUES ('Rolando', 'Sistemas'); aunque ya lo resolviste, espero que a otro le sirva. Saludos................. Última edición por rolandofv; 01/04/2010 a las 08:49 |
| ||||
Respuesta: Como Incremento la clave primaria???????
__________________ No repitamos temas, usemos el Motor de busquedas Plantea bien tu problema: Ayúdanos a ayudarte. |
| |||
Respuesta: Como Incremento la clave primaria??????? bueno, te lo explicare: IDENTITY, es una propiedad del Transact-SQL, que te crea una 'columna identidad' para una tabla. Y que se utiliza para incrementar el valor de la columna identidad, al igual que el 'auto_increment de MySQL' o que 'serial en PostgreSQL'. sus argumentos son: IDENTITY (valor_inicial , valor_incremento) POR EJEMPLO: Creamos una tabla persona con el atributo 'id' de tipo identidad. CREATE TABLE persona ( id int IDENTITY(1,2), dni int, nombre varchar (20), edad int ) // El atributo dni, tendra como valor inicial 1, y cada vez que se haga un registro en la tabla el valor se ira incrementando de 2 en 2. insert into persona (dni, nombre, edad) VALUES (3971778, 'Rolando', 24); insert into persona (dni, nombre, edad) VALUES (6857142, 'Fernanda', 25); select * from persona; //El resultado sera el siguiente, y fijate el campo id. id | dni | nombre | edad ------------------------------------------------- 1 | 3971778 | rolando | 24 3 | 6857142 | Fernanda | 25 tambien puedes revisar http://msdn.microsoft.com/es-es/library/ms186775.aspx |
| |||
Respuesta: Como Incremento la clave primaria??????? Si salta de 2 en 2 porque vos le pusiste en el campo ID que salte de 2 en 2, lo cual genera espacios vacios. De todas formas tine que existir alguna forma de poder incrementar el valor de ID de las tablas sin realizar programacion en codigo. Porque la solucion que utilizo es: Trae el Maximo valor de ID utilizado, incrementarlo en 1 y agregarlo al campo ID al momento de insertar datos, esto solamente con una tabla.Pero si debo insertar en multiples tablas se hace demasido complejo el codigo. SI existe una solucion a este problema que poseeo me gustaria saberla ya qu es engorroso estar hacienbdo lo que hago por codificacion. |
| |||
Respuesta: Como Incremento la clave primaria??????? Amigos, veo que el POST es antiguo, pero comento para otros que tal vez andan buscando sobre el uso de campos Identity. Los campos tipo identity son una excelente solucion, pero deben ser muy cuidadosos al utilizarlos. La funcionalidad de contador, puede ser muy tentador utilizarlos para identificar el numero unico de un Cliente, o de una factura, o de un comprobante fiscal, etc. Pero este tipo de campos no fueron creados para ese uso, y explico el porque. Dependiendo del Motor de Base de datos (Sybase, MSSQL, MYSQL, etc), se puede dar casos donde de forma voluntario o involuntarias el motor debe ser reiniciado y la concurrencia de multiples conexiones puede generar casos donde el secuencial de los campos Identity sufren un incremento no esperado, generando gap's o espacios en la numeracion. Este espacio en la numeracion puede ser faltal, si estamos utilizando el campo para la numeracion de Facturas, o comprobantes fiscales, etc. El uso correcto de un campo identity es para poder relacionar el registro en especifico con otra tabla, de esta forma si un registro tiene un secuencial de 100, y en otra tabla se relaciona este secuencial siempre sera 100. De esta forma garantizar la integridad de los datos. Por regla personal, yo solo ocupo campos Identity en tablas que su funcionalidad es de catalogo, y ese numero lo utilizo para relacionarlo en todas las tablas que se ocupe. Y si necesito generar un secuencial para facturacion, o Id de cliente, prefiero generar un procedimiento almacenado en donde le envio el tipo de secuencial que necesito y me retorna el secuencial que debo insertar en la tabla. De esta forma cuando te toca que restaurar datos, ya no tienen que pelear con los campos Identity, sino que solo restauras, y actualizan la tabla de secuenciales de toda la aplicacion. |
Etiquetas: |