创建表格
create table Empl(E_ID nvarchar(36) primary key, Name varchar(50), Designation varchar(50))
create table Location(L_ID nvarchar(36) primary key, Location varchar(50), E_ID nvarchar(36) foreign key references Empl(E_ID))
create table Contact_Emp (C_ID nvarchar(36) primary key, Contact_Number varchar(50), Lo_ID nvarchar(36) foreign key references Location(L_ID))
存储过程
alter proc InsertMultiplevalue
(
@Name varchar(50),
@Designation varchar(50),
@Location varchar(50),
@Contact varchar(50)
)
as
begin
insert into Empl values(newid(),@Name, @Designation)
declare @Employee_ID nvarchar(36) = NEWID()
insert into Location values(@Location,@Employee_ID)
declare @Cot_ID nvarchar(36) = NEWID()
insert into Contact_Emp values(@Contact,@Cot_ID)
end
Ececute SP
exec InsertMultiplevalue 'UserName','Programmer','India','Admin@learn2Free.Com'
我收到此错误
消息547,级别16,状态0,过程InsertMultiplevalue,第25行 INSERT语句与FOREIGN KEY约束“FK__Location__E_ID__33D4B598”冲突。冲突发生在数据库中 “LocalDBTest”,表“dbo.Empl”,列'E_ID'。 该语句已终止。 消息547,级别16,状态0,过程InsertMultiplevalue,第27行 INSERT语句与FOREIGN KEY约束“FK__Contact_E__Lo_ID__36B12243”冲突。冲突发生在数据库中 “LocalDBTest”,表“dbo.Location”,列“L_ID”。
答案 0 :(得分:0)
STore程序的变化是否有效
alter proc InsertMultiplevalue
(
@Name varchar(50),
@Designation varchar(50),
@Location varchar(50),
@Contact varchar(50)
)
as
begin
declare @Employee_ID nvarchar(36) = NEWID()
insert into Empl values(@Employee_ID,@Name, @Designation)
declare @Location_ID nvarchar(36) = NEWID()
insert into Location values(@Location_ID,@Location,@Employee_ID)
declare @Cot_ID nvarchar(36) = NEWID()
insert into Contact_Emp values(@Cot_ID,@Contact,@Location_ID)
end