Advertisement
Guest User

Untitled

a guest
Dec 16th, 2018
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. CREATE DATABASE EmploymentManagement
  2. GO
  3.  
  4. USE EmploymentManagement
  5. GO
  6.  
  7.  
  8. CREATE TABLE Department
  9. (
  10.     DepartmentID INT PRIMARY KEY NOT NULL IDENTITY,
  11.     Name VARCHAR(50) NOT NULL
  12. )
  13. GO
  14.  
  15. CREATE TABLE Employee
  16. (
  17.     EmployeeID INT PRIMARY KEY NOT NULL IDENTITY,
  18.     Name VARCHAR(50) NOT NULL,
  19.     DepartmentFK INT FOREIGN KEY REFERENCES dbo.Department(DepartmentID),
  20.     BirthDay DATETIME DEFAULT('1980-01-10')
  21. )
  22. GO
  23.  
  24. -- INSERT RECORDS
  25. INSERT dbo.Department ( Name )
  26. VALUES  ('Name'  ),
  27.         ('Humman resource'  ),
  28.         ('Research'  ),
  29.         ('Business D'  )
  30. GO
  31.  
  32. INSERT dbo.Employee(Name ,DepartmentFK ,BirthDay)
  33. VALUES  ( 'Nguyen Dai Hao' , '1' , '1999-09-09' ),
  34.         ( 'Bùi Kim Quyên' , '2' , '1989-11-12' ),
  35.         ( 'Võ An Phước Thiện' , '2' , '1985-09-23' ),
  36.         ( 'Phan Vinh Bính' , '3' , '1989-05-18' ),
  37.         ( 'Phan Huỳnh Ngọc Dung' , '3' , '1986-10-19' ),
  38.         ( 'Nguyễn Thiện Toàn' , '4' , '1986-03-09' ),
  39.         ( 'Huỳnh Kim Hoàng' , '4' , '1989-10-19' )
  40. GO
  41. /*
  42. 4) Tạo 1 view có tên ViewEmployees hiển thị thông tin của tất cả nhân viên,
  43. gồm EmployeeID, Name, BirthDate và DepartmentName (DepartmentName là tên phòng ban mà nhân viên đó làm việc).
  44. Sau đó, hiển thị dữ liệu của view này với 1 cột DepartmentName được sắp xếp tăng dần.
  45. */
  46. CREATE VIEW [ViewEmployees]
  47. AS SELECT TOP (100) PERCENT E.EmployeeID, E.Name, E.BirthDay, D.Name AS 'DepartmentName' FROM dbo.Employee E, dbo.Department D
  48. WHERE E.DepartmentFK = D.DepartmentID
  49. ORDER BY DepartmentName ASC
  50. GO
  51.  
  52. SELECT * FROM [ViewEmployees]
  53.  
  54. -- 5) Tạo 1 câu lệnh select để hiển thị  EmployeeID, Name và Age của tất cả nhân viên mà sinh sau 1975.
  55. SELECT EmployeeID, Name, (YEAR(GETDATE()) - YEAR(BirthDay)) AS 'Age' FROM dbo.Employee
  56. GO
  57. -- 6) Tạo 1 hàm thủ tục  stored procedure có tên ProcDeleteDepartment với tham số là @departmentId.
  58. --    Hàm thủ tục này xóa phòng ban với DepartmentID mà được nhập vào từ tham số  @departmentId. Viết lời gọi thủ tục  
  59. CREATE PROC ProcDeleteDepartment @departmentID CHAR(5)
  60. AS
  61. BEGIN
  62.     IF EXISTS(SELECT * FROM dbo.Department WHERE DepartmentID = @departmentID)
  63.         BEGIN
  64.             BEGIN TRY
  65.                 BEGIN TRAN
  66.                     DELETE FROM dbo.Employee WHERE DepartmentFK = @departmentID
  67.                     DELETE FROM dbo.Department WHERE DepartmentID = @DepartmentID
  68.                     COMMIT
  69.                     PRINT 'Đã xóa thành công Department ID là ' + @departmentID
  70.             END TRY
  71.             BEGIN CATCH
  72.                 ROLLBACK
  73.             END CATCH
  74.         END
  75.     ELSE
  76.         BEGIN
  77.             PRINT N'○ Mã Department này không tồn tại!'
  78.         END
  79. END
  80. GO
  81.  
  82.  
  83. EXEC ProcDeleteDepartment '1'
  84.  
  85. SELECT * FROM dbo.Employee
  86. SELECT * FROM dbo.Department
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement