Transacción implicita
Me encuentro con una tabla de Clientes con clave int(4), por ejemplo el cliente 2154.
Quiero crear un procedimiento almacenado que inserte un nuevo cliente.
INSERT INTO Clientes (ClienteId,Nombre,.....) VALUES
(
(SELECT TOP1 (ClienteId + 1) FROM Clientes ORDER BY 1),
'Rodrigo',
....)
)
¿Puede ser que se me duplique la clave?¿debo crear una transaccion, o ya está implicita en la instrucción? Y si creo la transacción ¿a que nivel hay bloqueo, de tabla?
No se me permite rediseñar la tabla, obviamente, la solución sería un campo identity autoincremental, pero no me dejan.
Gracias
|