Ensayo la ciudad de dios

Páginas: 7 (1736 palabras) Publicado: 25 de septiembre de 2010
COMO TRABAJAR CON AUTONUMERICOS?

En muchas de nuestras aplicaciones (por no decir en casi todas) nos vemos en la necesidad de generar números auto increméntales, por ejemplo para la numeración de Facturas, Remitos, Ordenes de Compra u otro tipo de documento.

La solución a esta tarea se puede hacer de distintas maneras.

La idea de este artículo es mostrar en Sql Server como podemosresolver este problema de dos formas básicamente y poder analizar sus pros y sus contras.

Usando campos Identitys:

Los campos identitys son una propiedad que podemos definir a algún campo de nuestra tabla. Básicamente la numeración de forma automática será otorgada por el motor de Base de Datos, en este caso SQL Server.

El siguiente ejemplo nos muestra como crear un campo identity a una tabladenominada Facturas:

USE NORTHWIND
GO

CREATE TABLE FACTURAS (ID INT IDENTITY(1,1), FECHA DATETIME, IMPORTE FLOAT)
GO

Como habrán podido observar la generación es muy simple, ahora solo basta con empezar a introducir registros para que nuestro motor de BDD empiece a generar los auto numéricos. El siguiente ejemplo agrega unos tres registros para demostrar lo anteriormente mencionado.USE NORTHWIND
GO

INSERT INTO FACTURAS (FECHA,IMPORTE) VALUES (GETDATE(),100.20)
INSERT INTO FACTURAS (FECHA,IMPORTE) VALUES (GETDATE()+1,10)
INSERT INTO FACTURAS (FECHA,IMPORTE) VALUES (GETDATE()+3,200)

Si intentamos ver los resultados de la tabla y hacemos:

USE NORTHWIND
GO

SELECT * FROM FACTURAS

Observaremos los siguientes resultados

ID FECHAIMPORTE
----------- ------------------------------------------------------ ------------
1 2004-08-24 22:40:25.670 100.2
2 2004-08-25 22:40:25.700 10.0
3 2004-08-27 22:40:25.700 200.0

Como se podrá observar el campo ID fuegenerado automáticamente por la BDD ya que lo hemos definido como Identity.

Hasta aquí pareciera que no tenemos mas de que discutir y que la solución a nuestro problema estaría totalmente solucionada, lamento mencionar que esta solución es la mas simple de usar pero la menos recomendadas de todas y veremos cuales son algunas contras de la misma.

Los campos Identitys no soportan Roll Back detransacciones, por lo cual si intentamos ejecutar un insert y este fracasa el numero se salteara para el próximo insert, veamos un ejemplo de esto expuesto para que se entienda mejor.

/* Agregamos a nuestra tabla Facturas un Constraint donde no permita valores para el campo importe iguales o menores que 0 */

USE NORTHWIND
GO

ALTER TABLE FACTURAS ADD CONSTRAINT CK_IMPORTE CHECK(IMPORTE >0)
GO

/* Ahora vamos a intentar insertar una factura donde el valor del campo importe sea igual a 0 */

USE NORTHWIND
GO

INSERT INTO FACTURAS (FECHA,IMPORTE) VALUES (GETDATE(),0)

Al intentar realizar esta ultima operación, vamos a obtener un error de CONSTRAINT ya que estamos violando una restricción de nuestra tabla en la cual indica que no pueden existir valores en importe igualeso menores que 0. Recuerde que el numero de factura a seguir debería ser el 4.

Ahora vamos a hacer un correcto insert a ver que sucede:

USE NORTHWIND
GO

INSERT INTO FACTURAS (FECHA,IMPORTE) VALUES (GETDATE(),10)

Ahora si nos ha dejado hacer el insert y estaría todo muy bien, pues debo comentar que hay un pequeño problema ( , veamos que ha sucedido con el numero consecutivo.

USENORTHWIND
GO

SELECT * FROM FACTURAS

ID FECHA IMPORTE
--------------------------------------------------- --------------------------------
1 2004-08-24 22:40:25.670 100.2
2 2004-08-25 22:40:25.700 10.0
3 2004-08-27 22:40:25.700...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • ensayo ciudad de Dios
  • Ciudad de Dios ensayo
  • Ensayo de la pelicual ciudad de dios
  • Ensayo de la pelicula "ciudad de dios"
  • Ensayo: Película “Ciudad De Dios”
  • Ensayo Pelicula Ciudad De Dios
  • Ensayo de película ciudad de dios
  • La Ciudad De Dios(Ensayo)

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS