Yuo have a foreign key between the tables checking that AdvertiseName.RegionsId value is found in regions. With the parameters you have supplied this does not exist.
So check the value in your parameter
@Addreg
Also check that you have supllied all necessary columns and values in each insert.
Addition:
It looks like the inserts are in wrong order, first insert to master table then to child.
Also the values look that they are in different order than the columns. Should the insert statement be like:
ALTER proc [dbo].[InsertUser]
(@AdvName nvarchar(50),
@AddGov int,
@Addtype int,
@Addreg int,
@AddFloor int,
@Addfinish int,
@Addsalary int,
@Addtel int)
as
insert into Regions
(GovNo)
values
(@AddGov);
insert into AdvertiseNames
(AdvertiseName,EstateId,FinishingId,FloorId,RegionId,Salary,Telephone)
values
(@AdvName,@Addtype,@Addfinish,@AddFloor,@Addreg,@Addsalary,@Addtel);
Also is the value in
@Addtype
really supposed to go to field
EstateId
?
One more thing. If you every time add a row to regions, won't that lead to duplicates? Should you add the region only if it does not exist?