Advertisement
f0rsakenbg

08. Delete Employees and Departments

Feb 15th, 2019
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 1.07 KB | None | 0 0
  1. -- alter table Departments set ManagerID to be NULLABLE
  2. -- delete from EmployeesProjects
  3. -- update Department set ManagerID to be NULL
  4. -- !remove manager from managing other dept employees (set to NULL)
  5. -- delete from Employees
  6. -- delete Department
  7.  
  8. CREATE PROC usp_DeleteEmployeesFromDepartment (@departmentId INT)
  9. AS
  10. ALTER TABLE Departments
  11. ALTER COLUMN ManagerID INT /*makes it nullable (not specified as 'NOT NULL')*/
  12.  
  13. DELETE FROM EmployeesProjects
  14. WHERE EmployeeID IN (SELECT EmployeeID FROM Employees WHERE DepartmentID = @departmentId) /*selects records from Employees table*/
  15.  
  16. UPDATE Departments
  17. SET ManagerID = NULL
  18. WHERE DepartmentID = @departmentId
  19.  
  20. UPDATE Employees
  21. SET ManagerID = NULL
  22. WHERE ManagerID IN (SELECT EmployeeID from Employees WHERE DepartmentID = @departmentId) /*removing the manager of the selected department from other dept employee records*/
  23.  
  24. DELETE FROM Employees
  25. WHERE DepartmentID = @departmentId
  26.  
  27. DELETE FROM Departments
  28. WHERE DepartmentID = @departmentId
  29.  
  30. SELECT COUNT(*)
  31.   FROM Employees
  32.  WHERE DepartmentID = @departmentId
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement