首页 > 其他 > 详细

存储过程——分页功能及触发器(八)

时间:2014-04-13 17:37:46      阅读:439      评论:0      收藏:0      [点我收藏+]
  • 实现分页功能
  1. 要求取出表A中第31到40条的记录(第4页信息),sql server以自动增长的ID作为主键,注意ID不能是连续的

答案

bubuko.com,布布扣
select top 10 * form A where id not inselect top 30 id from A)
bubuko.com,布布扣

那通过存储过程怎样去实现通用的分页功能的
分析

  1. 转递参数,表名,页码,页面数据展示大小,主键列名

以下雏形便产生了

bubuko.com,布布扣
-- =============================================
-- Author:        <Author,,Name>
-- Create date: 2014年4月13日 00:36:24
-- Description:    分页功能
-- =============================================
CREATE PROCEDURE GetDataByPageNo 
    @tablename nvarchar(100),--表名
    @pagesize int,--页大小
    @pageno int,--页码
    @columns nvarchar(50)--按列排序
AS
BEGIN
    DECLARE @sql nvarchar(1000)
    SET @sql=select top +CAST(@pagesize as nvarchar(10))+ *  from +@tablename+
      where + @columns + not in (select top +CAST((@pageno-1)*@pagesize as nvarchar(10))+ +@columns+ from + @tablename+ )
    EXEC(@Sql)
END
bubuko.com,布布扣
  • 触发器
  1. 触发器简介

触发器是一种DBMS相应特殊表或增、删、改操作的特殊类型的存储过程

    2. 触发器语法

bubuko.com,布布扣

 

具体应用如下

  1. 要求,流水账号实现

流水帐号格式:20140413000000、20140413000000

给产品表添加触发器

通过存储过程添加数据实现存触发器,修改表字段

  2.  具体操作如下

分析:

流水号格式,当期日期+最大id号六位数字组成

代码如下

bubuko.com,布布扣
-- Author:        <Author,,Name>
-- Create date:  2014年4月13日 11:39:48
-- Description:    生成流水号
-- =============================================
CREATE TRIGGER [dbo].[SetProNO] 
   ON   [dbo].[product]--操作表
   AFTER INSERT--具体操作,执行什么操作触发
AS 
BEGIN
    DECLARE @year nvarchar(10)
    DECLARE @mouth nvarchar(10)
    DECLARE @day nvarchar(10)
    DECLARE @id nvarchar(50)
    DECLARE @No nvarchar(50)
    DECLARE @str nvarchar(10)

    SET @year=Datename(yyyy,getdate())
    SET @mouth=Datename(mm,getdate())
    SET @day=Datename(dd,getdate())
    SET @str=000000
    SELECT @id=MAX(ID) FROM [dbo].[product]
    SET @No=@year+@mouth+@day+RIGHT(@str+@id,6)
    UPDATE product SET No=@No where id=@id
END
bubuko.com,布布扣

调用下面存储过程,直接触发上述触发器

bubuko.com,布布扣
-- =============================================
-- Author:        <Author,,Name>
-- Create date: 2014年4月13日 12:03:13
-- Description:    产品信息添加
-- =============================================
CREATE PROCEDURE [dbo].[Addproduct]
    @Name nvarchar(50),
    @Price money,
    @address nvarchar(50),
    @type int
AS
BEGIN
  INSERT product
  (
      Name,
      Price,
      Address,
      Type
  )
  VALUES
  (      
  @Name,
  @Price,
  @Address,
  @type
  )
END
bubuko.com,布布扣

 

存储过程——分页功能及触发器(八),布布扣,bubuko.com

存储过程——分页功能及触发器(八)

原文:http://www.cnblogs.com/tuqun/p/3662079.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!