Problema con columna estado en SQL server...? vb.net+sqlserver

#1
Hola amigos backunos, fijense que tengo un problema al momento de programar mi base de datos con vb.net y ps la verdad no se como hacerlo.

Diseñé ya la base de datos y el ingeniero de la universidad me dijo que implementara una columna estado para direccion y telefono, fijense en el diagrama de la bd.







Entonces me da estas condiciones:

1. Únicamente debe haber una dirección actual. Cada vez que registremos una dirección actual las otras serán cambiadas de estado, es decir a dirección antigua.

2. Se puede registrar varios teléfonos de distintos operadores. Pero debe ser posible en cierto momento indicar que el teléfono ya no está activo y por lo tanto cambiará de estado a inactivo.


Ahora me pide procedimientos almacenados para hacer el ABM de todas las tablas y esa parte del estado, no se como lo hago, que cambie cuando inserto un nuevo registro.

Ojalá y alguien me eche una mano amigos que estoy desconcertado...

Gracias por su ayuda de antemano...
 

CompuDoc

Bovino adicto
#2
De hecho las dos condiciones las haces facil con un stored procedure y utilizando transacciones. Si te falla, le haces un rollback.
ejemplo: http://stackoverflow.com/questions/15012886/how-to-rollback-or-commit-a-transaction-in-sql-server

Pseudocodigo:

BEGIN TRANS
UPDATE DIRECCION SET Actual = False WHERE IDPersona = 999
INSERT INTO DIRECCION (Col1, Col2, Actual) VALUES (Val1, Val2, TRUE)
COMMIT

IF @@TRANCOUNT > 0
ROLLBACK
(Checa el ejemplo para que lo completes y la otra se resuelve casi igual)
 
Arriba