`

我改写的sqlserver存储过程

Go 
阅读更多
Code
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->/*declare @str as nvarchar(100)
declare @str2 as nvarchar(1200)
set @str2='2010-01-01'
set  @str='select * from sq_donglong.NwebCn_NEws25 where NewsNameSi like ''%业绩%'' and AddTime>'''+@str2+''''
exec sp_executesql @str
print @@rowcount
*/
CREATE PROCEDURE [sq_donglong].[Achivement_Back_NewbCn_News25]
@iPageCount int=2 OUTPUT,--总页数
@CountsIndex int =2 output,--总记录数
@iPageSize int=2 ,--每页条数
@iPageIndex int =2,--当前页
@StartDate DateTime ,--开始日期
@EndDate DateTime ,--结束日期
@SearchKeyword varchar(500),--产品名称
@SortID int--类别ID
 AS

--创建临时表 
       create table #t(    [ID] [int] IDENTITY (11),
    
[NewsNameSi] [nvarchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
    
[SortID] [int] NULL ,
    
[SortPath] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    
[GroupID] [nvarchar] (18) COLLATE Chinese_PRC_CI_AS NULL ,
    
[Exclusive] [nvarchar] (2) COLLATE Chinese_PRC_CI_AS NULL ,
    
[SourceSi] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
    
[SmallPic] [nvarchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
    
[BigPic] [nvarchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
    
[ContentSi] [ntext] COLLATE Chinese_PRC_CI_AS NULL ,
    
[ClickNumber] [int] NULL ,
    
[AddTime] [smalldatetime] NULL ,
    
[UploadFiles] [ntext] COLLATE Chinese_PRC_CI_AS NULL ,
    
[NewFlag] [bit] NULL ,
    
[CommendFlag] [bit] NULL ,
    
[IsOk] [bit] NULL ,
    
[xuhao] [int] NULL ,
    
[Force] [bit] NULL ,
    
[AreaID] [int] NULL )
     
---变量allNums
 declare @allNums as decimal
 
--查询条件
 declare @datawhere as nvarchar(4000)
 
set @datawhere=''
 
select @allNums=count(ID) from sq_donglong.NwebCn_News25
--向临时表中写入数据
declare @strsql nvarchar(4000)
--创建查询语句
--
set  @strsql="select Pro_id,Pro_title,Pro_passed,Pro_addtime,Pro_rank,Pro_user,Pro_class1,Pro_small_pic,Pro_price from dbo.[Pro_Tbl_Product]  where Pro_id>0 and Pro_passed="+str(@passed)
--
set @strsql="select ID,NewsNameSi,SortID,SortPath,ClickNumber,AddTime,IsOk,xuhao,Force,AreaID from sq_donglong.[NwebCn_News25] where "

if(@SearchKeyword<>'')
set @datawhere=@datawhere+' and NewsNameSi like ''%'+@SearchKeyword+'%''  or ContentSi like ''%'+@SearchKeyword+'%'''
if(ISDATE(@StartDate)=1)
set @datawhere=@datawhere+' and AddTime>='''+@StartDate+''''
if(ISDATE(@EndDate)=1)
set @datawhere=@datawhere+' and AddTime<='''+@EndDate+''''
if(IsNumeric(@SortID)=1)
set @strsql=@datawhere+' and SortID='+str(@SortID)+''
set @strsql='select * from (select top '+@allNums+'ID,NewsNameSi,SortID,SortPath,ClickNumber,AddTime,IsOk,xuhao,Force,AreaID from sq_donglong.NwebCn_News25 where Force=1 '+@datawhere+' order by xuhao asc)a union all select * from (select top '+@allNums+' ID,NewsNameSi,SortID,SortPath,ClickNumber,AddTime,IsOk,xuhao,Force,AreaID from sq_donglong.NwebCn_News25 where Force<>1 '+@datawhere+' order by AddTime desc)b '
declare @strsql2 nvarchar(4000)
set @strsql2=@strsql
--插入
  set @strsql='insert into #t(ID,NewsNameSi,SortID,SortPath,ClickNumber,AddTime,IsOk,xuhao,Force,AreaID) '+@strsql
   
execute sp_executesql    @strsql
    
execute sp_executesql    @strsql2
--确定总记录数
    declare @Counts int
    
set @Counts = @@rowcount
--确定总页数
   IF @Counts%@iPageSize=0
          
SET @iPageCount=CEILING(@Counts/@iPageSize)
       
ELSE
          
SET @iPageCount=CEILING(@Counts/@iPageSize)+1
  
--若请求的页号大于总页数,则显示最后一页
      IF @iPageIndex > @iPageCount
        
SELECT @iPageIndex = @iPageCount
--确定当前页的始末记录
      DECLARE @iStart int    --start record
      DECLARE @iEnd int      --end record
     SELECT @iStart = (@iPageIndex - 1* @iPageSize
     
SELECT @iEnd = @iStart + @iPageSize + 1
--取当前页记录    
    select * from #t where ID>@iStart and ID<@iEnd
    
set @CountsIndex =@@rowcount
DROP TABLE #t
return @Counts
GO
分享到:
评论

相关推荐

    存储过程生成器(sql server 2000)

    在SQL Server 2000中,存储过程是一种预编译的SQL代码集合,它可以视为数据库中的可重用函数,用于执行特定任务或一组任务。存储过程极大地提高了数据库的效率和安全性,因为它们可以减少网络流量,提升性能,并且...

    SQL 面试题目汇总

    2. **存储过程(Stored Procedures)**:存储过程是预编译的SQL语句集合,存储在数据库中并可重复调用。它们提高了代码的重用性,可以提升性能,减少网络流量,并提供更好的安全性。理解如何创建、执行和管理存储...

    SQLServer2005技术内幕(存储引擎)

    《SQLServer2005技术内幕(存储引擎)》是一本深入探讨SQL Server 2005数据库管理系统中存储引擎核心机制的专业书籍。该书详细阐述了SQL Server 2005在处理数据存储、查询优化、事务处理等方面的关键技术,为数据库...

    Professional Microsoft SQL Server 2008 Administration

    2. **数据库设计与管理**:讨论关系数据库设计的基本原则,如范式理论,以及如何在SQL Server 2008中创建、修改和管理数据库对象,如表、索引、视图和存储过程。 3. **安全性**:讲解如何设置用户访问控制,包括...

    SQL Tuning sqlServer 数据库

    以上内容只是《SQL Tuning in sqlServer 数据库》教程的部分要点,通过深入学习,你可以掌握一系列SQL Server性能优化的技巧和最佳实践,从而更好地管理和优化你的数据库系统。CHM格式的文档通常包含丰富的超链接和...

    SQLServer实用SQL语句大全

    《SQLServer实用SQL语句大全》是一本涵盖了SQL Server数据库管理与开发的全面指南,旨在帮助用户深入理解和熟练运用SQL语言。此书共分为15个章节,每一章都精心设计,理论结合实践,旨在让读者能够从基础到高级逐步...

    sqlserver学习资料

    SQL Server是一种广泛使用的关系型数据库管理系统,由微软公司开发,用于存储、管理和检索数据。它在企业级应用、数据仓库和数据分析中扮演着重要角色。本压缩包中的学习资料涵盖了SQL Server的基础知识到高级特性,...

    SQL server2012 教程

    **SQL Server 2012 教程** SQL Server 2012是微软公司推出的一款强大、全面的关系型数据库管理系统(RDBMS),适用于各种规模的企业和组织,支持复杂的数据管理和分析任务。本教程旨在帮助初学者从零开始学习如何...

    SQL Server 2000开发指南

    在存储过程和触发器方面,本书会深入讲解如何使用T-SQL编写存储过程和触发器,以实现更复杂的业务逻辑和数据规则。这些高级功能可以提高代码的复用性,降低系统维护成本。 数据库安全性是任何数据库系统都必须面对...

    SQL Server 2005幻灯片

    可能会涵盖Transact-SQL(T-SQL)语法、索引、存储过程和触发器等内容。 3. **安全性**:讨论如何设置用户权限、角色和登录,以及如何通过SQL Server Management Studio(SSMS)进行安全配置,保护数据安全。 4. *...

    Sql server相关资料

    6. 性能优化:通过查询分析器、索引调整、内存管理和查询改写等手段提升SQL Server的性能是数据库管理员的重要任务。本书可能会涉及监控和诊断工具,以及性能调优的最佳实践。 7. 备份与恢复:备份是防止数据丢失的...

    SQL Server 从入门到精通(第2版)实例代码,实例源程序

    11. **性能优化**:监控和分析SQL Server性能是DBA的重要任务,使用查询分析器、动态管理视图和性能计数器来找出性能瓶颈,并采取相应的调整措施,如索引优化、查询改写等。 12. **集成服务和 Reporting Services**...

    零点起飞学SQL Server

    SQL Server 2008作为Microsoft公司的一款强大的关系型数据库管理系统,广泛应用于数据存储、管理和分析,尤其在企业级应用中占据重要地位。通过学习本教程,你将能够了解并熟练操作SQL Server 2008,从而为开发相关...

    SQLSERVER模块考试答案

    SQLSERVER模块考试答案是针对微软的SQL Server数据库管理系统进行学习和测试的重要参考资料。SQL Server是企业级的关系型数据库系统,广泛应用于数据存储、管理和分析。这个模块考试答案旨在帮助学习者掌握SQL ...

    Microsoft SQL Server 2005技术内幕(一): 查询、调整和优化 及 存储引擎

    《Microsoft SQL Server 2005技术内幕》一书涵盖了SQL Server 2005的核心技术,特别是关于查询、调整和优化以及存储引擎的深度解析。以下是对这些关键知识点的详细阐述: 一、查询、调整和优化 1. **查询语言SQL**...

    SQL server 电子教程

    4. **T-SQL扩展**:深入探讨T-SQL(Transact-SQL),SQL Server的扩展语法,包括存储过程、触发器、函数(内置和自定义)以及动态SQL的应用,这些都是提升数据库功能和效率的关键。 5. **数据类型与约束**:详述SQL...

    SQL_SERVER_7编程技术内幕.rar_sql_sql server

    书中可能会详细讲解T-SQL的语法、函数、存储过程和触发器的使用。 2. **数据库设计与管理**:包括如何创建数据库、表、索引,以及如何进行数据类型选择、关系模型设计等,这些是数据库管理的基础。 3. **查询优化*...

    深入解析SQL Server 2008

    SQL Server 2008是微软在数据库管理领域的重要产品,它提供了广泛的功能,包括数据存储、数据处理、安全性、备份与恢复等,为企业级的数据管理和分析提供了强大的支持。 本书将引领读者深入了解SQL Server 2008的...

    SQL Server数据库管理精品电子书

    此外,还涉及到了T-SQL的扩展功能,如存储过程、触发器和视图的编写。 三、数据库安全与权限管理 在数据库管理中,安全性和权限控制至关重要。本书会阐述如何设置用户、角色,以及权限的分配和管理。同时,还会介绍...

    SQL server 0基础 学习

    SQL Server 是一款由微软开发的关系型数据库管理系统(RDBMS),在IT行业中广泛应用于数据存储、管理和分析。作为初学者,0基础学习SQL Server需要掌握以下几个核心知识点: 1. **数据库概念**:理解数据库的基本...

Global site tag (gtag.js) - Google Analytics