Hi @harishgg1 thaaaank you thank you so much for your help. It happens to be, after breaking my head for hours, I just found out why. But I appreciate your willingness. As a matter of fact it is because:
The table CIUDAD when linked to ALMACENES will modify other tables as ALMACENES has dependencies. And when linked to CLIENTES at the same time, will modify other tables as CLIENTES has other dependencies and that is where the double path is.
While on PEDIDO, the tables with Id_Pedido as FK don´t have any further dependencies so there is no double path, only two tables being modified. Just in case you are as curious as I am, here´s my code: (the one that fails)
create database PEDIDOS;
use PEDIDOS;
create table CLIENTES
(
Id_Cliente int not null,
Nombre_Cliente varchar (50) not null,
Ciudad_Cliente varchar (30) not null,
Telefono_Cliente char (10),
);
create table PEDIDO
(
Id_Pedido int not null,
Fecha_Pedido datetime not null,
ID_Cliente int not null,
Total_Importe_Pedido float not null,
);
create table DETALLE_PEDIDO
(
Id_Pedido int not null,
Id_Articulo int not null,
Cantidad_DP int not null,
);
create table ARTICULOS
(
Id_Articulo int not null,
Nombre_Articulo varchar (50) not null,
Precio_UNI_Articulo money not null,
);
create table ENVIOS
(
Id_Pedido int not null,
Id_Almacen int not null,
Fecha_Envio datetime not null,
);
create table ALMACENES
(
Id_Almacen int not null,
Ciudad_Almacen varchar (30) not null,
);
alter table CLIENTES
add constraint pk_CLIENTES primary key (Id_Cliente);
alter table PEDIDO
add constraint pk_PEDIDO primary key (Id_Pedido);
alter table DETALLE_PEDIDO
add constraint pk_DETALLE_PEDIDO primary key (Id_Pedido, Id_Articulo);
alter table ARTICULOS
add constraint pk_ARTICULOS primary key (Id_Articulo);
alter table ENVIOS
add constraint pk_ENVIOS primary key (Id_Pedido,Id_Almacen);
alter table ALMACENES
add constraint pk_ALMACENES primary key (Id_Almacen);
ALTER TABLE PEDIDO
ADD CONSTRAINT FK_PEDIDO FOREIGN KEY (Id_Cliente)
REFERENCES CLIENTES (Id_Cliente)
ON DELETE CASCADE
ON UPDATE CASCADE
;
ALTER TABLE DETALLE_PEDIDO
ADD CONSTRAINT FK1_DETALLE_PEDIDO FOREIGN KEY (Id_Pedido)
REFERENCES PEDIDO (Id_Pedido)
ON DELETE CASCADE
ON UPDATE CASCADE
;
ALTER TABLE DETALLE_PEDIDO
ADD CONSTRAINT FK2_DETALLE_PEDIDO FOREIGN KEY (Id_Articulo)
REFERENCES ARTICULOS (Id_Articulo)
ON DELETE CASCADE
ON UPDATE CASCADE
;
ALTER TABLE ENVIOS
ADD CONSTRAINT FK1_ENVIOS FOREIGN KEY (Id_Pedido)
REFERENCES PEDIDO (Id_Pedido)
ON DELETE CASCADE
ON UPDATE CASCADE
;
ALTER TABLE ENVIOS
ADD CONSTRAINT FK2_ENVIOS FOREIGN KEY (Id_Almacen)
REFERENCES ALMACENES (Id_Almacen)
ON DELETE CASCADE
ON UPDATE CASCADE
;
alter table ARTICULOS
ADD Existencia_Articulo int;
alter table CLIENTES
alter column Telefono_Cliente char(14);
alter table PEDIDO
alter column Total_Importe_Pedido money not null;
alter table ALMACENES add
Nombre_Almacen varchar (50) not null,
Total_Empleados_Almacen int
;
alter table ARTICULOS
add Costo_Articulo money not null;
EXEC sp_rename 'ARTICULOS.Precio_UNI_Articulo', 'Precio_Articulo', 'COLUMN';
create table CIUDAD
(
Id_Ciudad int not null,
Nombre_Ciudad varchar (50) not null,
constraint pk_CIUDAD primary key (Id_Ciudad),
);
alter table ALMACENES
ADD CONSTRAINT FK_ALMACENES FOREIGN KEY (Id_Ciudad)
REFERENCES CIUDAD (Id_Ciudad)
ON DELETE CASCADE
ON UPDATE CASCADE
;
alter table CLIENTES
ADD CONSTRAINT FK_CLIENTES FOREIGN KEY (Id_Ciudad)
REFERENCES CIUDAD (Id_Ciudad)
ON DELETE CASCADE
ON UPDATE CASCADE
;