Advertisement
Guest User

Untitled

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