0

我有两张桌子emp_detailsdep_details.

emp_details字段中是 ( empid, empname, empsal, deptId(f.key)),在dept_details字段中是 ( deptID(P.key), deptname)。

如果我更新empname, empsaland deptnamefrom empdetailsand deptdetails,主键列和外键列deptID必须同时更新。

以下是我尝试过的存储过程:

alter proc UpdateEmployeeDetail(@eid int ,@ename varchar(30),@esal float, @deptid varchar(30),@deptname varchar(30))
as 
begin
update e set e.ename=@ename, e.esal=@esal, e.deptid=@deptid from
 EmployeeDetails e where  e.eid=@eid
 update d set d.deptid=@deptid, d.deptname=@deptname from  DepartmentDetails d  , EmployeeDetails e
 where e.deptid=d.deptid and d.deptid=@deptid
end 
go'
4

1 回答 1

0

也许您可以更改表之间的约束(ON UPDATE CASCADE)..:

ALTER TABLE dbo.MyTable ADD CONSTRAINT
    FK_SomeFK FOREIGN KEY
    (
        SomeID
    ) REFERENCES dbo.OtherTable
    (
        SomeId
    ) ON UPDATE CASCADE 
     ON DELETE NO ACTION 
于 2012-09-07T14:24:22.433 回答