Font size
WorksheetsMS SQL SERVER - SP
Total questions: 40
Worksheet time: 30mins
Tìm lỗi trong stored procedure sau:
CREATE PROC sp_TimSanPham
@Ten VARCHAR(100)
BEGIN
SELECT *
FROM SanPham
WHERE TenSP LIKE @Ten END
Sửa lỗi trong stored procedure thêm khách hàng: CREATE PROCEDURE sp_ThemKhachHang
@Ten NVARCHAR(100),
@SDT VARCHAR(15)
AS
BEGIN
INSERT INTO KhachHang (Ten, SDT)
VALUES (@Ten, @SDT);
SELECT @@IDENTITY AS MaKhachHangMoi;
END;
Tìm lỗi trong stored procedure cập nhật giá:
CREATE PROCEDURE sp_SuaGia
@MaSP INT,
@GiaMoi MONEY
AS
BEGIN
UPDATE SanPham
SET Gia = @GiaMoi
PRINT N'Cập nhật giá sản phẩm thành công!';
END;
Chỉnh sửa stored procedure xóa sản phẩm:
CREATE PROC sp_XoaSanPham
@Ma INT
AS
DELETE SanPham WHERE MaSP=@Ma
Sửa lỗi trong stored procedure tìm sản phẩm theo khoảng giá:
CREATE PROC sp_TimTheoGia
@Min INT, @Max INT
AS
BEGIN
SELECT * FROM SanPham
WHERE Gia > @Min AND Gia < @Max
END
Tìm và sửa lỗi trong stored procedure thêm đơn hàng:
CREATE PROC sp_ThemDonHang
@MaKH INT, @NgayDat DATE
AS
BEGIN TRANSACTION
INSERT INTO DonHang VALUES (@MaKH, @NgayDat)
COMMIT
Sửa stored procedure cập nhật tồn kho:
CREATE PROC sp_CapNhatKho
@MaSP INT, @SoLuong INT
AS
BEGIN
UPDATE KhoHang SET SoLuong = @SoLuong
WHERE MaSP = @MaSP
END
Chỉnh sửa stored procedure xóa đơn hàng:
CREATE PROC sp_XoaDonHang
@MaDH INT
AS
BEGIN
DELETE FROM DonHang WHERE MaDH=@MaDH
DELETE FROM ChiTietDonHang WHERE MaDH=@MaDH
END
Sửa lỗi stored procedure tính tổng doanh thu:
CREATE PROC sp_DoanhThu
@Thang INT, @Nam INT
AS
BEGIN
SELECT SUM(TongTien) FROM DonHang
WHERE Thang = @Thang AND Nam = @Nam
END
Tìm lỗi trong stored procedure thêm sản phẩm:
CREATE PROC sp_ThemSanPham
@Ten NVARCHAR(200), @Gia DECIMAL(18,2), @DanhMucID INT
AS
INSERT INTO SanPham(TenSP, Gia, DanhMucID)
VALUES (@Ten, @Gia, @DanhMucID)
Sửa stored procedure cập nhật thông tin khách hàng:
CREATE PROC sp_SuaKhachHang
@Ma INT, @Ten NVARCHAR(100), @Email VARCHAR(100)
AS
BEGIN
IF EXISTS(SELECT * FROM KhachHang WHERE Email=@Email)
BEGIN RETURN -1
END
UPDATE KhachHang SET Ten=@Ten, Email=@Email WHERE MaKH=@Ma
END
Chỉnh sửa stored procedure xóa danh mục:
CREATE PROC sp_XoaDanhMuc
@MaDM INT
AS
BEGIN
DELETE FROM DanhMuc WHERE ID=@MaDM
END
Sửa stored procedure phân trang: CREATE PROC sp_DanhSachSanPham
@PageNumber INT, @PageSize INT
AS
BEGIN
SELECT FROM SanPham LIMIT @PageSize OFFSET (@PageNumber-1)@PageSize
END
SQL Server dùng OFFSET...FETCH thay vì LIMIT
Sai công thức tính OFFSET
Tìm lỗi trong stored procedure thêm chi tiết đơn hàng:
CREATE PROC sp_ThemChiTiet
@MaDH INT, @MaSP INT, @SoLuong INT, @DonGia MONEY
AS
BEGIN
INSERT INTO ChiTietDonHang
VALUES (@MaDH, @MaSP, @SoLuong, @DonGia)
END
Sửa stored procedure đổi trạng thái đơn hàng:
CREATE PROC sp_DoiTrangThai
@MaDH INT, @TrangThai NVARCHAR(50)
AS
BEGIN
UPDATE DonHang
SET TrangThai = @TrangThai, NgayCapNhat = GETDATE()
WHERE MaDH = @MaDH
IF @@ROWCOUNT = 0
RETURN -1
END
