Loại: Viết store procedure phần 3
Các bài cần theo dõi của bài viết: Xây dựng cơ sở dữ liệu cho một website
Phần 1: Tạo database
Phần 2: Viết Trigger
Phần 3: Viết store procedure truy vấn, thêm, sửa, xóa một chuyên mục
Phần 4: Viết store procedure hiển thị menu đa cấp
Phần 5: Viết store Procedure thêm, sửa, xóa một bài viết
Phần 6: Viết store procedure hiển thị danh sách bài viết
Phần 7: Viết store procedure tìm kiếm bài viết
Phần 8: Viết store procedure top 10 các bài viết mới và cũ
Tiếp theo chúng ta cần viết các hàm và Store Procedure cho bảng TB_News.
1. Store Procedure thêm, sửa, xóa một bài viết.
Cũng giống như với bảng TB_Category, mình viết spTB_News_Edit để thực hiện cả 3 hành động thêm, sửa, xóa một bài viết.
Nếu @Action=0 => xóa bài viết theo idNews=@idNews
Nếu @Action>0 =>
Nếu @idNews=0 thí thêm mới bài viết
Nếu @idNews>0 thì cập nhật bài viết theo idnews=@idnews
Store Procedure spTB_News_Edit được viết như sau:
-- =============================================
-- Author: webmaster@hmweb.com.vn
-- Description: <Thêm, sửa hoặc xóa bài viết>\
-- =============================================
CREATE PROCEDURE [dbo].[spTB_News_Edit]
@Action int,
@idNews int,
@CateID int,
@UserName nvarchar(50),
@Title nvarchar(500),
@Description ntext,
@Content ntext,
@Author nvarchar(150),
@Picture nvarchar(255),
@CreateDate datetime,
@PublishDate datetime,
@Status int,
@Link nvarchar(150)
AS
BEGIN
-- Nếu @Action=0 --> Xóa bài viết theo @idNews
IF @Action=0
BEGIN
DELETE FROM TB_News WHERE idNews=@idNews
END
-- Nếu Nếu @Action=1 --> Thêm mới hoặc sửa bài viết
ELSE
BEGIN
--Nếu @idNews=0 --> Thêm mới bài viết
IF @idNews=0
BEGIN
INSERT INTO TB_News
(
CateID,
UserName,
Title,
Description,
Content,
Author,
Picture,
CreateDate,
PublishDate,
Status,
Link
)
VALUES
(
@CateID,
@UserName,
@Title,
@Description,
@Content,
@Author,
@Picture,
@CreateDate,
@PublishDate,
@Status,
@Link
)
END
--Nếu @idNews>0 --> Cập nhật bài viết với idNews=@idNews
IF @idNews>0
BEGIN
UPDATE TB_News
SET
CateID = @CateID,
UserName = @UserName,
Title = @Title,
Description = @Description,
Content = @Content,
Author = @Author,
Picture = @Picture,
CreateDate = @CreateDate,
PublishDate = @PublishDate,
Status = @Status,
Link = @Link
WHERE idNews=@idNews
END
END
END
2. Store procedure Xóa tất cả bài viết theo chuyên mục
Khi cần xóa hết bài viết của một chuyên mục bạn viết thủ tục như sau:
-- =============================================
-- Author: webmaster@hmweb.com.vn
-- Description: <Xóa bài viết theo chuyên mục được chọn>
-- =============================================
CREATE PROCEDURE [dbo].[spTB_News_Delete_ByCateID]
@CateID int
AS
BEGIN
DELETE FROM TB_News WHERE CateID=@CateID
END
3. Store procedure Xóa tất cả bài viết của một UserName
Khi cần xóa hết bài viết của một UserName bạn viết thủ tục như sau:
Khi cần xóa hết bài viết của một UserName bạn viết thủ tục như sau:
-- =============================================
-- Author: webmaster@hmweb.com.vn
-- Description: <Xóa hết bài viết theo UserName>
-- =============================================
CREATE PROCEDURE [dbo].[spTBNewsDeleteByUserName]
@UserName nvarchar(50)
AS
BEGIN
DELETE FROM TBNews WHERE UserName=@UserName
END