sql批量删除和条件查询

 

ALTER   PROCEDURE   [ dbo ] . [ PublishYearly_Delete ]
    
@in_YearlyID   VARCHAR ( 500 )
AS

BEGIN
    
UPDATE  PublishYearly  SET  Status = 2   WHERE   CHARINDEX ( ' , ' + CAST (YearlyID  AS   VARCHAR ( 100 )) + ' , ' , @in_YearlyID ) > 0
END
ALTER   PROCEDURE   [ dbo ] . [ PublishYearly_GetList ]
    
@request_page_num   INT , -- 基于0的,如第一页@page_size=0
     @page_size   INT ,
    
@Year   INT ,
    
@Status   INT ,
    
@PublishDate   DATETIME ,
    
@ExpiredDate   DATETIME
AS
BEGIN
    
DECLARE   @sql   NVARCHAR ( Max )
    
SET   @sql = ' SELECT *,ROW_NUMBER() OVER (ORDER BY YearlyID) AS RowNumber FROM PublishYearly WHERE 1=1 '
    
    
IF ( @Year != 0 )
        
SET   @sql = @sql + '  AND Year= ' + CAST ( @Year   AS   VARCHAR ( 10 ));
        
    
IF ( @Status != 0 )
        
SET   @sql = @sql + '  AND Status= ' + CAST ( @Status   AS   VARCHAR ( 10 ));
        
    
IF ( @PublishDate   IS   NOT   NULL )
        
SET   @sql = @sql + '  AND PublishDate>= ''' + CONVERT ( VARCHAR ( 20 ), @PublishDate , 120 ) + '''' ;
        
    
IF ( @ExpiredDate   IS   NOT   NULL )
        
SET   @sql = @sql + '  AND ExpiredDate<= ''' + CONVERT ( VARCHAR ( 20 ), @ExpiredDate , 120 ) + '''' ;
        
    
PRINT   ( ' SELECT COUNT(*) FROM ( ' + @sql + ' ) _temp ' )

    
EXEC  ( ' SELECT COUNT(*) FROM ( ' + @sql + ' ) _temp ' )
    
    
SET   @sql = ' SELECT *,(CASE Status WHEN  '' 1 ''  THEN  '' 正常 ''  ELSE  '' 无效 ''  END) AS StatusN FROM (SELECT * FROM ( ' +   @sql + N ' ) _temp WHERE RowNumber BETWEEN  ' + CAST ( @request_page_num * @page_size + 1   AS   VARCHAR ( 10 )) + '  AND  ' + CAST (( @request_page_num + 1 ) * @page_size   AS   VARCHAR ( 10 )) + ' ) tt  '
    
    
PRINT  ( @sql )
    
EXEC  ( @sql )

END

 

转载于:https://www.cnblogs.com/stalwart/archive/2011/04/02/2003658.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值