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