1. Trang chủ
  2. » Tất cả

Đồ án môn học hệ quản trị cơ sở dữ liệu đề tài tổ chức kinh doanh quản lý nhân viên bán hàng, cửa hàng

31 48 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tổ Chức Kinh Doanh - Quản Lý Nhân Viên Bán Hàng, Cửa Hàng
Tác giả Phạm Nguyên Vũ, Phạm Quang Thành, Nguyễn Hoàng Ngọc Thuy, Hồ Sỹ Gia Trung, Trần Minh Phát
Người hướng dẫn ThS. Nguyễn Thị Thủy
Trường học Trường Đại học Thủ Dầu Một
Chuyên ngành Hệ Quản Trị Cơ Sở Dữ Liệu
Thể loại Đề án môn học
Năm xuất bản 2021
Thành phố Thủ Dầu Một
Định dạng
Số trang 31
Dung lượng 613,22 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • CHƯƠNG 1. QUẢN LÝ CƠ SỞ DỮ LIỆU (7)
    • 1. Giới thiệu Cơ sở dữ liệu (7)
    • 2. Mô tả Cơ sở dữ liệu (7)
    • 3. Sơ đồ mối quan hệ (14)
  • CHƯƠNG 2. CÁC THAO TÁC TRÊN CƠ SỞ DỮ LIỆU (15)
    • 1. Tạo các View (15)
      • 1.1. View có điều kiện đơn giản trên 1 bảng (15)
      • 1.2. View có điều kiện đơn giản trên nhiều bảng (15)
      • 1.3. View có điều kiện phức tạp/ truy vấn lồng trên 1 bảng (16)
      • 1.4. View có điều kiện phức tạp/ truy vấn lồng trên nhiều bảng (17)
      • 1.5. View cập nhật dữ liệu (18)
    • 2. Xây dựng các Stored Procedure (18)
      • 2.1. Thủ tục không tham số (18)
      • 2.2. Thủ tục có tham số mặc định (19)
      • 2.3. Thủ tục có tham số output (19)
      • 2.4. Thủ tục có tham số input (20)
    • 3. Xây dựng các Function (21)
      • 3.1. Hàm trả về kiểu vô hướng (21)
      • 3.2. Hàm trả về bảng (23)
      • 3.3. Hàm trả về bảng tự định nghĩa (25)
    • 4. Xây dựng các Trigger và Transaction (26)
      • 4.1. Trigger Insert (26)
      • 4.2. Trigger Update (26)
      • 4.3. Trigger Delete (27)
      • 4.4. Transaction (COMMIT và ROLL BACK) (27)
    • 5. Tạo các User (28)
  • CHƯƠNG 3. KẾT LUẬN (30)
  • TÀI LIỆU THAM KHẢO (31)

Nội dung

TỔ CHỨC KINH Doanh QUẢN LÝ NHÂN VIÊN BÁN HÀNG, CỬA HÀNG TRƯỜNG ĐẠI HỌC THỦ DẦU MỘT VIỆN KỸ THUẬT CÔNG NGHỆ ĐỒ ÁN MÔN HỌC HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Đề tài TỔ CHỨC KINH DOANH QUẢN LÝ NHÂN VIÊN BÁN HÀNG,[.]

QUẢN LÝ CƠ SỞ DỮ LIỆU

Giới thiệu Cơ sở dữ liệu

Cơ sở dữ liệu AdventureWorks được xây dựng dựa trên dữ liệu của công ty giả tưởng Adventure Works Cycles, một tập đoàn sản xuất và kinh doanh xe đạp bằng kim loại và các vật liệu tổng hợp Dữ liệu này mô phỏng hoạt động của một công ty đa quốc gia quy mô lớn trong ngành công nghiệp xe đạp, giúp các nhà phát triển và nhà phân tích hiểu rõ hơn về quản lý dữ liệu doanh nghiệp.

Modul: Tổ chức kinh doanh - Quản lý nhân viên bán hàng, cửa hàng

Mô tả Cơ sở dữ liệu

CSDL AdventureWorks trong Modul Tổ chức kinh doanh - Quản lý nhân viên bán hàng, cửa hàng gồm có 8 bảng có cấu trúc như sau:

RevisionNumber Số cộng dồn để theo dõi những thay đổi đối với đơn hàng bán hàng theo thời gian.

OrderDate Ngày tạo đơn đặt hàng.

DueDate Ngày đặt hàng là do khách hàng.

ShipDate Ngày đơn đặt hàng được chuyển đến khách hàng.

Status Đặt hàng tình trạng hiện tại 1 = Đang trong quá trình; 2 Được chấp thuận; 3 = Bị tồn đọng; 4 = Bị từ chối; 5 = Đã vận chuyển; 6 = Đã hủy

OnlineOrderFlag 0 = Đơn hàng do người bán hàng đặt 1 = Đơn đặt hàng trực tuyến của khách hàng.

SalesOrderNumber Số định danh đơn hàng bán hàng duy nhất.

PurchaseOrderNumber Khách hàng mua hàng số tham chiếu.

AccountNumber Tham chiếu số tài khoản kế toán

CustomerID Số định danh khách hàng Khóa ngoại cho

SalesPersonID Người bán hàng đã tạo đơn đặt hàng Khóa ngoại cho

TerritoryID Lãnh thổ nơi giao dịch được thực hiện Khóa ngoại đối với SalesTerritory.SalesTerritoryID.

BillToAddressID Địa chỉ thanh toán của khách hàng Khóa ngoại cho

ShipToAddressID Địa chỉ giao hàng của khách hàng Khóa ngoại cho

ShipMethodID Phương thức vận chuyển Khóa ngoại cho

CreditCardID Số định danh thẻ tín dụng Khóa ngoại cho

CreditCardApprovalCode Mã phê duyệt do công ty phát hành thẻ tín dụng cung cấp. CurrencyRateID Tỷ giá hối đoái được sử dụng Khóa ngoại cho

SubTotal Tổng phụ bán hàng Được tính là SUM

(SalesOrderDetail.LineTotal) cho SalesOrderID thích hợp.

Freight Chi phí vận chuyển.

TotalDue Tổng số tiền đến hạn từ khách hàng Được tính dưới dạng

Trong bài viết, chúng tôi nhấn mạnh rằng trường "rowguid" là danh định duy nhất của mỗi bản ghi, giúp hỗ trợ quá trình sao chép hợp nhất dữ liệu hiệu quả Đồng thời, trường "ModifiedDate" ghi nhận ngày và giờ cập nhật cuối cùng của bản ghi, đảm bảo tính chính xác và theo dõi lịch sử chỉnh sửa Các doanh nghiệp có thể yên tâm quản lý dữ liệu nhờ vào các thuộc tính này, nâng cao hiệu quả vận hành hệ thống.

Sales Order Identification Khóa chính Khóa ngoại cho

Sales Order Detail Identification Khóa chính Một số duy nhất gia tăng cho mỗi sản phẩm đã bán.

Carrier Tracking Number Số theo dõi lô hàng do người gửi hàng cung cấp. Order Quantity Số lượng đặt hàng trên mỗi sản phẩm.

Product Identification Sản phẩm đã bán cho khách hàng Khóa ngoại cho

Special Offer Identification Mã khuyến mại Khóa ngoại cho

Unit Price Giá bán của một sản phẩm duy nhất.

Unit Price Discount Số tiền chiết khấu.

Line Total Tổng phụ trên mỗi sản phẩm Được tính dưới dạng

Số ROWGUIDCOL định danh duy nhất của bản ghi Được sử dụng để hỗ trợ một mẫu sao chép hợp nhất.

Modification Date Ngày và giờ bản ghi được cập nhật lần cuối.

PersonID Khóa ngoại cho Person.BusinessEntityID

StoreID Khóa ngoại cho Store.BusinessEntityID

TerritoryID ID của lãnh thổ mà khách hàng đang sinh sống Khóa ngoại cho

Số tài khoản (AccountNumber) là mã định danh cho khách hàng do hệ thống kế toán tự xác định, giúp xác định chính xác thông tin khách hàng Trong khi đó, trường rowguid (Số ROWGUIDCOL) là mã định danh duy nhất của từng bản ghi trong hệ thống, được sử dụng để hỗ trợ các mẫu sao chép, hợp nhất dữ liệu một cách chính xác và hiệu quả.

ModifiedDate Ngày và giờ bản ghi được cập nhật lần cuối.

TerritoryID Khóa chính cho các bản ghi SalesTerritory.

Name Mô tả lãnh thổ bán hàng

CountryRegionCode Mã quốc gia hoặc vùng tiêu chuẩn ISO Khóa ngoại cho

Group Khu vực địa lý mà lãnh thổ bán hàng thuộc về.

SalesYTD Doanh số bán hàng trong lãnh thổ từ năm đến nay.

SalesLastYear Doanh số bán hàng trong lãnh thổ năm trước.

CostYTD Chi phí kinh doanh trên lãnh thổ từ năm đến nay.

Chi phí kinh doanh năm trước, còn gọi là CostLastYear, thể hiện tổng chi tiêu trên lãnh thổ trong năm trước đó, giúp doanh nghiệp đánh giá hiệu quả hoạt động và lập kế hoạch cho các năm tiếp theo Trong cơ sở dữ liệu, mỗi bản ghi đều có một số ROWGUIDCOL duy nhất, đảm bảo tính định danh chính xác và hỗ trợ cho các hoạt động sao chép hợp nhất dữ liệu.

ModifiedDate Ngày và giờ bản ghi được cập nhật lần cuối.

BusinessEntityID Khóa chính Đại diện bán hàng Khóa ngoại cho

TerritoryID Khóa chính Số định danh lãnh thổ Khóa ngoại đối với

StartDate Khóa chính Ngày đại diện bán hàng bắt đầu làm việc trong lãnh thổ.

Ngày EndDate thể hiện ngày đại diện bán hàng rời khỏi công việc trong khu vực lãnh thổ Trường rowguid là mã định danh duy nhất của bản ghi, được sử dụng để hỗ trợ quá trình sao chép và hợp nhất dữ liệu hiệu quả.

ModifiedDate Ngày và giờ bản ghi được cập nhật lần cuối.

BusinessEntityID Khóa chính Khóa ngoại cho Customer.BusinessEntityID.

Name Tên của cửa hàng.

SalesPersonID ID của nhân viên bán hàng được chỉ định cho khách hàng

Khóa ngoại cho SalesPerson.BusinessEntityID.

Thông tin nhân khẩu học của cửa hàng, bao gồm số lượng nhân viên, doanh thu hàng năm và loại hình cửa hàng, giúp đánh giá hiệu quả kinh doanh và tiềm năng phát triển Mã duy nhất của bản ghi được xác định thông qua cột ROWGUIDCOL, hỗ trợ quá trình sao chép và hợp nhất dữ liệu một cách chính xác và an toàn.

ModifiedDate Ngày và giờ bản ghi được cập nhật lần cuối.

BusinessEntityID Số nhận dạng nhân viên bán hàng Khóa ngoại cho

QuotaDate Ngày hạn ngạch bán hàng.

SalesQuota Số lượng hạn ngạch bán hàng. rowguid Số ROWGUIDCOL định danh duy nhất của bản ghi Được sử dụng để hỗ trợ một mẫu sao chép hợp nhất.

ModifiedDate Ngày và giờ bản ghi được cập nhật lần cuối.

BusinessEntityID Khóa chính cho hồ sơ SalesPerson Khóa ngoại cho

Employee.BusinessEntityIDTerritoryID Lãnh thổ hiện được chỉ định cho Khóa ngoại đối với

SalesQuota Doanh số dự kiến hàng năm.

Bonus Tiền thưởng đến hạn nếu đáp ứng đủ hạn ngạch.

CommissionPct Phần trăm hoa hồng nhận được trên mỗi lần bán hàng.

SalesYTD Tổng doanh số từ năm đến nay.

SalesLastYear Sales total of the previous year. rowguid Số ROWGUIDCOL định danh duy nhất của bản ghi Được sử dụng để hỗ trợ một mẫu sao chép hợp nhất.

ModifiedDate Ngày và giờ bản ghi được cập nhật lần cuối.

Tên đề tài: Tổ chức kinh doanh - Quản lý nhân viên bán hàng, cửa hàng 7 Trang

Sơ đồ mối quan hệ

Tên đề tài: Tổ chức kinh doanh - Quản lý nhân viên bán hàng, cửa hàng Trang

CustomerID PersonID StoreID TerritoryID AccountNumber rowguid ModifiedDate

SalesOrderID SalesOrderDetailID CarrierTrackingNumber OrderQty ProductID SpecialOfferID UnitPrice UnitPriceDiscount LineTotal rowguid ModifiedDate

SalesOrderID RevisionNumber OrderDate DueDate ShipDate Status OnlineOrderFlag SalesOrderNumber PurchaseOrderNumber AccountNumber CustomerID SalesPersonID TerritoryID BillToAddressID ShipToAddressID ShipMethodID CreditCardID CreditCardApprovalCode CurrencyRateID SubTotal TaxAmt Freight TotalDue Comment rowguid ModifiedDate

SalesYTD SalesLastYear CostYTD CostLastYear rowguid ModifiedDate

BusinessEntityID TerritoryID StartDate EndDate rowguid ModifiedDate

BusinessEntityID Name SalesPersonID Demographics rowguid ModifiedDate

CÁC THAO TÁC TRÊN CƠ SỞ DỮ LIỆU

Tạo các View

1.1 View có điều kiện đơn giản trên 1 bảng

To calculate the total value of invoices with tracking numbers starting with "4BD," filter the data based on CarrierTrackingNumber where the first three characters are "4BD." The relevant information includes SalesOrderID, CarrierTrackingNumber, and the subtotal, which is computed by summing the product of OrderQty and UnitPrice for each invoice This approach ensures an accurate aggregation of the total invoice value for shipments identified by tracking numbers beginning with "4BD."

SELECT SalesOrderID, CarrierTrackingNumber, SUM(OrderQty * UnitPrice) AS SubTotal FROM Sales.SalesOrderDetail

1.2 View có điều kiện đơn giản trên nhiều bảng

- Yêu cầu: Tạo View hiển thị top 5 tổng doanh số cao nhất từ cột TotalDue mỗi năm và mỗi tháng cho từng khách hàng

SELECT TOP 5 C.CustomerID, YEAR(OrderDate) AS OrderYear, MONTH(OrderDate) AS OrderMonth, SUM(TotalDue) AS TotalSales

Tên đề tài: Tổ chức kinh doanh - Quản lý nhân viên bán hàng, cửa hàng 9 Trang

FROM Sales.Customer C, Sales.SalesOrderHeader SOH

GROUP BY C.CustomerID, YEAR(OrderDate), MONTH(OrderDate)

1.3 View có điều kiện phức tạp/ truy vấn lồng trên 1 bảng

This article details a query to generate a list of duplicate sales orders (SalesOrderID) issued between May 1, 2011, and October 31, 2011, with a total sales amount exceeding $100,000 The report includes essential information such as SalesOrderID, OrderDate, and SubTotal The SubTotal is calculated as the sum of the product of OrderQty and UnitPrice for each order This analysis helps identify high-value, repeated sales orders within the specified date range, providing insights into sales performance and potential anomalies Utilizing this data can support business decision-making regarding inventory management and sales strategies.

WHERE SalesOrderID = Sales.SalesOrderHeader.SalesOrderID

Tên đề tài: Tổ chức kinh doanh - Quản lý nhân viên bán hàng, cửa hàng 10 Trang

1.4 View có điều kiện phức tạp/ truy vấn lồng trên nhiều bảng

- Yêu cầu: Tạo View hiển thị danh sách các hóa đơn có SubTotal (Tổng phụ bán hàng) >

3500 và có hơn 70 loại sản phẩm.

WHERE SalesOrderID = Sales.SalesOrderHeader.SalesOrderID

Tên đề tài: Tổ chức kinh doanh - Quản lý nhân viên bán hàng, cửa hàng 11 Trang

1.5 View cập nhật dữ liệu

- Yêu cầu: Nhận thấy SubTotal trong các hóa đơn khá cao, tăng nhẹ 10% thuế (TaxAmt) cho hóa đơn có SubTotal cao nhất ngay trên View vw_ListInvoicesHaveLotsOfProducts.

SELECT TOP 1 SalesOrderID, SubTotal, TaxAmt

SELECT TOP 1 SalesOrderID, SubTotal, TaxAmt

Xây dựng các Stored Procedure

2.1 Thủ tục không tham số

- Yêu cầu: Viết thủ tục lấy ra tiền thưởng cao nhất của trong bảng Sales.SalesPerson

SELECT MAX(Bonus) AS MaxBonus

Tên đề tài: Tổ chức kinh doanh - Quản lý nhân viên bán hàng, cửa hàng 12 Trang

2.2 Thủ tục có tham số mặc định

- Yêu cầu: Viết thủ tục có tham số mặc định là @ID = 274 lấy ra tổng số lượng hạn ngạch bán hàng (TotalSalesQuota) của ID đó.

SELECT BusinessEntityID, SUM(SalesQuota) AS TotalSalesQuota

2.3 Thủ tục có tham số output

Để viết thủ tục có chứa tham số output, người dùng cần truyền vào mã quốc gia như một tham số đầu vào Thủ tục sẽ hiển thị thông tin về quốc gia đó và đếm số lượng lãnh thổ thuộc quốc gia đó, giúp người dùng có dữ liệu chi tiết và phản hồi chính xác Việc này giúp nâng cao khả năng kiểm soát và xử lý dữ liệu trong hệ thống, đồng thời tối ưu hóa kết quả truy vấn dựa trên mã quốc gia đã cung cấp.

@Code VARCHAR(2), @TerritoryCount INT OUTPUT

Tên đề tài: Tổ chức kinh doanh - Quản lý nhân viên bán hàng, cửa hàng 13 Trang

EXEC sp_CountTerritory 'AU', @Count OUTPUT

2.4 Thủ tục có tham số input

Chương trình yêu cầu nhập tháng và năm từ bàn phím để tính tổng tiền thu (TotalDue) của mỗi khách hàng trong khoảng thời gian đó Thuật toán sẽ lấy CustomerID và tính tổng các khoản TotalDue của khách hàng trong tháng và năm đã chọn Kết quả là danh sách các CustomerID cùng với tổng tiền thu (SumofTotalDue) tương ứng, giúp doanh nghiệp theo dõi doanh thu của khách hàng theo từng tháng và năm cụ thể.

@CustomerID INT, @Year INT, @Month INT

SELECT CustomerID, SUM(TotalDue) AS SumOfTotalDue

Tên đề tài: Tổ chức kinh doanh - Quản lý nhân viên bán hàng, cửa hàng 14 Trang

Kết quả của yêu cầu 1:

- Yêu cầu 2: Tạo thủ tục đếm tổng số khách hàng và tổng tiền của những khách hàng thuộc từng vùng lãnh thổ khi người dùng nhập mã quốc gia.

SELECT ST.TerritoryID, COUNT(C.CustomerID) AS NumberOfCustomer, SUM(Subtotal)

FROM Sales.Customer C, Sales.SalesOrderHeader SOH, Sales.SalesOrderDetail SOD, Sales.SalesTerritory ST

AND SOH.SalesOrderID = SOD.SalesOrderID

AND SOH.TerritoryID = ST.TerritoryID

- Kết quả của yêu cầu 2:

Xây dựng các Function

3.1 Hàm trả về kiểu vô hướng

- Yêu cầu 1: Viết hàm trả về biểu diễn văn bản của cột Status trong bảng

CREATE FUNCTION fn_GetSalesOrderStatusText(@Status TINYINT)

Tên đề tài: Tổ chức kinh doanh - Quản lý nhân viên bán hàng, cửa hàng 15 Trang

PRINT 'SalesOrderStatus: ' + dbo.fn_GetSalesOrderStatusText(5)

- Kết quả của yêu cầu 1:

Để tính số tiền được giảm giá trên các hóa đơn, bạn cần xác định mức giảm dựa trên giá trị SubTotal Cụ thể, nếu SubTotal nhỏ hơn 1000, thì Discount bằng 0 Đối với các hóa đơn có SubTotal từ 1000 đến dưới 5000, mức giảm là 5% của SubTotal Khi SubTotal từ 5000 đến dưới 10000, mức giảm tăng lên thành 10% Cuối cùng, với các hóa đơn có SubTotal trên 10000, mức giảm giá sẽ là 15% của SubTotal, giúp khách hàng tiết kiệm tối đa dựa trên tổng tiền thanh toán.

CREATE FUNCTION fn_GetDiscountAmount(@ID INT)

Tên đề tài: Tổ chức kinh doanh - Quản lý nhân viên bán hàng, cửa hàng 16 Trang

WHEN @SubTotal >= 1000 AND @SubTotal < 5000 THEN @SubTotal * 0.05

WHEN @SubTotal >= 5000 AND @SubTotal < 100000 THEN @SubTotal * 0.1

PRINT 'DiscountAmount: ' + CONVERT(VARCHAR(20), dbo.fn_GetDiscountAmount(43659))

- Kết quả của yêu cầu 2:

Hàm được yêu cầu nhận vào hai tham số @Month và @Year để truy xuất danh sách các hóa đơn lặp trong tháng và năm tương ứng Chức năng của hàm là lọc các hóa đơn dựa trên ngày Orderdate phù hợp với tháng và năm đã cung cấp, gồm các thông tin quan trọng như SalesOrderID, Orderdate và SubTotal Kết quả trả về là danh sách các hóa đơn thỏa mãn điều kiện lọc, giúp người dùng dễ dàng theo dõi các giao dịch lặp trong khoảng thời gian mong muốn Hàm này hỗ trợ tốt trong việc quản lý, phân tích doanh thu hàng tháng, hàng năm cho doanh nghiệp.

GROUP BY SalesOrderID, OrderDate, SubTotal

- Kết quả của yêu cầu 1:

Tên đề tài: Tổ chức kinh doanh - Quản lý nhân viên bán hàng, cửa hàng 17 Trang

Để tính tổng doanh thu của các nhân viên bán hàng (SalePerson) trong tháng và năm cụ thể, bạn cần viết một hàm có tham số @MonthOrder và @YearOrder Hàm này sẽ lấy thông tin từ bảng dữ liệu, trong đó bao gồm các trường như SalesPersonID và Total, trong đó Total được tính bằng cách tổng hợp các giá trị SubTotal Kết quả trả về là tổng doanh thu của từng nhân viên bán hàng trong khoảng thời gian tháng và năm được chỉ định, giúp theo dõi hiệu quả bán hàng theo từng giai đoạn rõ ràng và chính xác Đảm bảo sử dụng các phương pháp tối ưu hóa SQL để truy vấn nhanh và chính xác, đồng thời chú trọng đến các yếu tố SEO khi viết nội dung liên quan để tăng khả năng tiếp cận và xếp hạng cao trên các công cụ tìm kiếm.

SELECT SalesPersonID, SUM(SubTotal) AS Total

AND SalesPersonID IS NOT NULL

- Kết quả của yêu cầu 2:

Tên đề tài: Tổ chức kinh doanh - Quản lý nhân viên bán hàng, cửa hàng 18 Trang

3.3 Hàm trả về bảng tự định nghĩa

- Yêu cầu: Viết hàm bảng mới chứa 5 cột đầu và 5 giá trị đầu của bảng Sales.Customer

CREATE FUNCTION dbo.fn_ListTop5Customer()

SELECT TOP 5 CustomerID, PersonID, StoreID, TerritoryID, AccountNumber

SELECT * FROM fn_ListTop5Customer()

Tên đề tài: Tổ chức kinh doanh - Quản lý nhân viên bán hàng, cửa hàng 19 Trang

Xây dựng các Trigger và Transaction

Hệ thống cần có trigger tự động cập nhật tiền thưởng cho nhân viên bán hàng khi thêm mới một bản ghi vào bảng SalesOrderHeader Theo quy định, nếu tổng doanh thu bán hàng của nhân viên từ các đơn hàng mới đạt trên 10.000.000 VND, thì phần thưởng của họ sẽ được tăng thêm 10% trên mức thưởng hiện tại Việc tự động cập nhật này giúp đảm bảo tính công bằng và thúc đẩy năng suất bán hàng, đồng thời tối ưu hóa quản lý thưởng thưởng cho nhân viên.

DECLARE @ID INT = (SELECT SalesPersonID FROM inserted)

DECLARE @Total MONEY = (SELECT SubTotal FROM inserted)

- Yêu cầu: Tạo trigger khi cập nhật bảng Sales.SalesTerritory thì cập nhật lại bảng Sales.SalesTerritoryHistory với TerritoryID mới và StartDate là ngày hiện tại.

DECLARE @OldID INT = (SELECT TerritoryID FROM deleted)

DECLARE @NewID INT = (SELECT TerritoryID FROM inserted)

Tên đề tài: Tổ chức kinh doanh - Quản lý nhân viên bán hàng, cửa hàng 20 Trang

Yêu cầu của bạn là tạo trigger để xóa hóa đơn trong bảng Sales.SalesOrderHeader và đồng thời xóa các bản ghi liên quan trong bảng Sales.SalesOrderDetail Trigger này phải kiểm tra xem hóa đơn có tồn tại trong Sales.SalesOrderHeader không; nếu không, không cho phép xóa và hiển thị thông báo lỗi phù hợp Việc đảm bảo tính toàn vẹn dữ liệu và tuân thủ quy trình xóa đúng quy định là rất quan trọng để tránh mất mát dữ liệu không mong muốn.

DECLARE @ID INT = (SELECT SalesOrderID FROM deleted)

PRINT 'Invoice does not exist'

4.4 Transaction (COMMIT và ROLL BACK)

Để thực hiện xóa nhiều bản ghi trên nhiều bảng khác nhau một cách liên tục, bạn cần sử dụng câu lệnh Transaction trong SQL Trong quá trình thực thi, nếu có bất kỳ câu lệnh nào trong Transaction thất bại, hệ thống sẽ in ra lỗi và thực hiện lệnh ROLLBACK để hoàn tác tất cả các thay đổi đã thực hiện trước đó, đảm bảo tính toàn vẹn dữ liệu Ngược lại, nếu tất cả các câu lệnh thành công, Transaction sẽ được xác nhận bằng lệnh COMMIT, giúp lưu trữ các thay đổi vào cơ sở dữ liệu một cách an toàn và đồng bộ Điều này giúp quản lý dữ liệu hiệu quả và tránh tình trạng dữ liệu bị lỗi khi thực hiện các thao tác xóa phức tạp trên nhiều bảng khác nhau.

DELETE FROM Sales.Store WHERE Name = 'South Bike Company'

DELETE FROM Sales.SalesPerson WHERE BusinessEntityID = 1

Tên đề tài: Tổ chức kinh doanh - Quản lý nhân viên bán hàng, cửa hàng 21 Trang

DELETE FROM Sales.SalesTerritory WHERE Name = 'North'

Để thực hiện việc thêm nhiều bản ghi liên tục trên nhiều bảng khác nhau, bạn cần viết câu lệnh Transaction đảm bảo tính toàn vẹn dữ liệu Trong quá trình thực thi, nếu có bất kỳ câu lệnh nào trong Transaction thất bại, hệ thống sẽ in ra lỗi và thực hiện ROLLBACK để hoàn nguyên các thay đổi đã thực hiện Ngược lại, nếu tất cả câu lệnh đều thành công, Transaction sẽ được COMMIT để xác nhận các thay đổi vào cơ sở dữ liệu, đảm bảo tính nhất quán và chính xác của dữ liệu.

(BusinessEntityID, SalesQuota, Bonus, CommissionPct, SalesYTD, SalesLastYear, rowguid, ModifiedDate)

Tạo các User

- Yêu cầu 1: Tạo User Student1 có quyền thêm, chỉnh sửa dữ liệu bảng Sales.SalePerson

CREATE LOGIN Student1 WITH PASSWORD = 'Thisis@p@ssword'

CREATE USER s1 FOR LOGIN Student1

GRANT INSERT,UPDATE ON Sales.SalesPerson TO s1

- Yêu cầu 2: Tạo User Student2 có quyền xem dữ liệu bảng Sales.Customer

Tên đề tài: Tổ chức kinh doanh - Quản lý nhân viên bán hàng, cửa hàng 22 Trang

CREATE LOGIN Student2 WITH PASSWORD = 'Thisisalso@p@ssword'

CREATE USER s2 FOR LOGIN Student2

GRANT SELECT ON Sales.Customer TO s2

Tên đề tài: Tổ chức kinh doanh - Quản lý nhân viên bán hàng, cửa hàng 23 Trang

Ngày đăng: 30/01/2023, 17:40

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w