cs_Content_CreateUpdateDelete///cs_Content_GetList///cs_Content_Load

本文介绍了一组用于管理网站内容的SQL Server存储过程,包括内容的增删查改等功能。通过这些示例,读者可以了解到如何利用存储过程进行高效的数据管理和操作。
ContractedBlock.gif ExpandedBlockStart.gif cs_Content_GetList
None.gifALTER  PROCEDURE [dbo].[cs_Content_GetList]
None.gif(
None.gif    
@SettingsID int
None.gif)
None.gif
AS
None.gif    
SELECT  
None.gif        
*
None.gif    
FROM 
None.gif        cs_Content c
None.gif    
WHERE 
None.gif        c.Hidden 
= 0 and c.SettingsID = @SettingsID
None.gif    
ORDER BY 
None.gif        c.LastModified 
DESC
ExpandedBlockStart.gifContractedBlock.gif
/**//*获取不隐藏的信息*/
None.gif
None.gif
GO
ContractedBlock.gif ExpandedBlockStart.gif cs_Content_CreateUpdateDelete
None.gifALTER   PROCEDURE [dbo].cs_Content_CreateUpdateDelete
None.gif(
None.gif    
@ContentID    int out,
None.gif    
@Action     int,
None.gif    
@Name        nvarchar(256),
None.gif    
@Title        nvarchar(256),
None.gif    
@Body        ntext,
None.gif    
@FormattedBody    ntext,
None.gif    
@Hidden        bit,
None.gif    
@UpdateDate     bit,
None.gif    
@SettingsID     int
None.gif)
None.gif
AS
None.gif
SET Transaction Isolation Level Read UNCOMMITTED
ExpandedBlockStart.gifContractedBlock.gif
/**//*设置事务隔离级别,Read UNCOMMITTED  执行脏读或 0 级隔离锁定,这表示不发出共享锁,
InBlock.gif  也不接受排它锁。当设置该选项时,可以对数据执行未提交读或脏读;在事务结束前可以更
InBlock.gif  改数据内的数值,行也可以出现在数据集中或从数据集消失。该选项的作用与在事务内所有
ExpandedBlockEnd.gif  语句中的所有表上设置 NOLOCK 相同。这是四个隔离级别中限制最小的级别。
*/

None.gif
-- CREATE
None.gif
IF @Action = 0
None.gif
BEGIN
None.gif    
-- first check that content name is not already in use
None.gif
        --检查内容名称是否被使用
None.gif
    IF EXISTS
None.gif    (
None.gif        
SELECT  
None.gif            
NULL
None.gif        
FROM 
None.gif            cs_Content
None.gif        
WHERE
None.gif            Name 
= @Name and SettingsID = @SettingsID
None.gif    )
ExpandedBlockStart.gifContractedBlock.gif         
/**//*如果存在则创建错误信息并返回*/
None.gif    
BEGIN
None.gif        
RAISERROR ( 'Content name in use'161)
None.gif        
RETURN
None.gif    
END                
None.gif
None.gif    
DECLARE @SortOrder int  --声明排序类型
None.gif

None.gif    
SELECT @SortOrder = coalesce(MAX(SortOrder) + 11FROM cs_Content where SettingsID = @SettingsID
ExpandedBlockStart.gifContractedBlock.gif             
/**//*COALESCE 返回其参数中第一个非空表达式。*/
None.gif
None.gif
None.gif    
-- Create a new content
None.gif
        --插入数据,即创建新内容.
None.gif
    INSERT INTO 
None.gif        cs_Content 
None.gif        (
None.gif            Name,
None.gif            Title,
None.gif            Body,
None.gif            FormattedBody,
None.gif            Hidden,
None.gif            SortOrder,
None.gif            SettingsID
None.gif        )
None.gif    
VALUES 
None.gif        (
None.gif            
@Name,
None.gif            
@Title,
None.gif            
@Body,
None.gif            
@FormattedBody,
None.gif            
@Hidden,
None.gif            
@SortOrder,
None.gif            
@SettingsID
None.gif        )
None.gif    
None.gif    
SET @ContentID = SCOPE_IDENTITY()
ExpandedBlockStart.gifContractedBlock.gif         
/**//*SCOPE_IDENTITY返回插入到同一作用域中的 IDENTITY 列内的最后一个 IDENTITY 值。
InBlock.gif          一个作用域就是一个模块——存储过程、触发器、函数或批处理。因此,如果两个语句处
ExpandedBlockEnd.gif          于同一个存储过程、函数或批处理中,则它们位于相同的作用域中。
*/

None.gif
None.gif
END
None.gif
None.gif
None.gif
-- UPDATE
None.gif
ELSE IF @Action = 1
None.gif
BEGIN
None.gif
None.gif    
IF EXISTS
None.gif    (
None.gif        
SELECT  
None.gif            
NULL
None.gif        
FROM 
None.gif            cs_Content c
None.gif        
WHERE
None.gif            c.Name 
= @Name
None.gif            
AND c.ContentID <> @ContentID and c.SettingsID = @SettingsID
None.gif    )
ExpandedBlockStart.gifContractedBlock.gif         
/**//*如果活动为1,ID不同,但是存在相同名称的记录,则创建错误消息*/
None.gif    
BEGIN
None.gif        
RAISERROR ( 'Content name in use'161)
None.gif        
RETURN
None.gif    
END                
None.gif
None.gif    
IF EXISTS(SELECT NULL FROM cs_Content WHERE ContentID = @ContentID)
ExpandedBlockStart.gifContractedBlock.gif         
/**//*如果存在此ID的记录则更新此记录的内容*/
None.gif    
BEGIN
None.gif        
UPDATE
None.gif            cs_Content
None.gif        
SET
None.gif            Name 
= @Name,
None.gif            Title 
= @Title,
None.gif            Body 
= @Body,
None.gif            FormattedBody 
= @FormattedBody
None.gif        
WHERE
None.gif            ContentID 
= @ContentID and SettingsID = @SettingsID
None.gif
ExpandedBlockStart.gifContractedBlock.gif        
IF @UpdateDate = 1 /**//*如果更新为真,运行更新存储过程,
ExpandedBlockEnd.gif                                  此存储过程是更新最近操作时间的
*/

None.gif            
EXEC cs_Content_UpdateDate @ContentID
None.gif    
END
None.gif
None.gif
END
None.gif
None.gif
-- DELETE
None.gif
ELSE IF @Action = 2
None.gif
BEGIN  --如果为2,删除次记录
None.gif
    DELETE cs_Content WHERE ContentID = @ContentID and SettingsID = @SettingsID
None.gif
END
None.gif
None.gif
None.gif
GO

ContractedBlock.gif ExpandedBlockStart.gif cs_Content_Load
None.gifALTER  PROCEDURE [dbo].[cs_Content_Load]
None.gif(
None.gif    
@ContentID int,
None.gif    
@SettingsID int,
None.gif    
@Name nvarchar(256= null
None.gif)
None.gif
AS
None.gif
IF(@ContentID > 0)
None.gif
BEGIN
None.gif    
SELECT 
None.gif        
[SettingsID][ContentID][Name][Title][Body][FormattedBody][LastModified][SortOrder][Hidden]
None.gif    
FROM 
None.gif        
[dbo].[cs_Content]
None.gif    
WHERE
None.gif        ContentID 
= @ContentID and SettingsID = @SettingsID
None.gif
END
None.gif
ELSE
None.gif
BEGIN
None.gif    
SELECT 
None.gif        
[SettingsID][ContentID][Name][Title][Body][FormattedBody][LastModified][SortOrder][Hidden]
None.gif    
FROM 
None.gif        
[dbo].[cs_Content]
None.gif    
WHERE
None.gif        
[Name] = @Name and SettingsID = @SettingsID
ExpandedBlockStart.gifContractedBlock.gif        
/**//*如果ID大于0则一ID为条件查询,如果不大于0,则按名称为条件查询*/
None.gif
None.gif
END
None.gif
None.gif
GO

转载于:https://www.cnblogs.com/ruanbl/archive/2006/09/05/494887.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值