检查约束工资

问题描述 投票:0回答:1

对于我正在研究的项目。我必须在薪金方面做一个检查约束。Emp_ID xxx的薪水不能高于其Manger_id xxx的薪水。

例如,我有以下数据,该数据在同一表中:

Emp_ID manager_id salary 
1      2          1000
2      2          2000
3      4          3000
4      5          5000

因此,emp_id 1的管理者为manager_id 2,manager_id 2为emp_id 2

所以我尝试了这个:

选择员工的薪水在哪里employee_id(SELECT员工编号=经理编号)

我获得了Emp_id 2 / Manager_id2的薪水,但没有从Manager_id4获得薪水,因为他也有其他经理。

sql tsql ssms check-constraints
1个回答
0
投票
I think i have the solution :-) 

Create PROCEDURE xx
--
--
--
DECLARE @salary_cap int;

SET @salary_cap = (SELECT salary FROM Employee WHERE employee_id = @manager_id)
IF @salary <= @salary_cap
    BEGIN
        UPDATE Employee SET salary = @salary WHERE employee_id = @employee_id;
        SELECT * FROM Employee WHERE employee_id = @employee_id;
    END

ELSE
    BEGIN
        RAISERROR ('Employee Salary is to high stay below Manager Salary',16,1)
        RETURN
    END
END
© www.soinside.com 2019 - 2024. All rights reserved.