zoukankan      html  css  js  c++  java
  • 12-存储过程

    CREATE DATABASE fuxi12
    USE fuxi12
    --车辆信息
    CREATE TABLE Car(
    ID INT PRIMARY KEY IDENTITY, --主键
    CarName VARCHAR(80), --车名
    CarPinPaiID VARCHAR(50), --品牌id
    CarTypeID VARCHAR(50), --车型
    CarTyoeID2 VARCHAR(50), --车型2
    CarImg VARCHAR(500), --车辆图片
    CarRemark VARCHAR(500), --车辆描述
    CarXingShi VARCHAR(100), --车辆形式
    CarQuDong VARCHAR(100), --车辆驱动
    CarFaDongJi VARCHAR(100), --发动机
    CarZhouJu VARCHAR(100), --车辆轴距
    CarPaiLiang VARCHAR(100), --车辆排量
    CarZhiLiang INT, --车辆最大质量(KG)
    CarNiuJu VARCHAR(100), --车辆扭矩
    CarZhengBei INT, --整备质量(KG)
    CarRanYou VARCHAR(50), --车辆燃油类型
    CarYouXiang INT, --邮箱容积(L)
    CarPriceID VARCHAR(50), --价格区间
    CarXingTypeID VARCHAR(50), --车型分类
    CarGroupID VARCHAR(50), --车型分组
    CarZiXun VARCHAR(50), --热线咨询
    CarPaiFang VARCHAR(50), --排放标准
    CarPrice INT, --市场价
    CarXingNum VARCHAR(50), --型号
    CarTypeXing VARCHAR(50), --类型
    CarBaoYang VARCHAR(50), --保养周期
    CarGong VARCHAR(50), --功能类型
    CarCreateTime VARCHAR(100), --上市时间
    CarBianSuXiang VARCHAR(100), --变速箱
    CarLongWidth VARCHAR(50), --长宽高
    CarZhanTing VARCHAR(50), --销售展厅
    CarChangName VARCHAR(50), --厂家名称
    CarChangAddress VARCHAR(50), --厂家地址
    CarChangPhone VARCHAR(50), --厂家电话
    CarChangRemark VARCHAR(500) --厂家描述
    )
    SELECT * FROM dbo.Car
    --房车品牌
    CREATE TABLE CarPinPai
    (
    ID INT PRIMARY KEY IDENTITY,
    PinPaiName VARCHAR(50)
    )
    INSERT INTO carpinpai VALUES ('旅顺房车'),('大众房车'),('红旗房车')
    SELECT * FROM dbo.CarPinPai

    --价格区间
    CREATE TABLE CarPrice
    (
    ID INT PRIMARY KEY IDENTITY,
    CarPriceName VARCHAR(50)
    )
    INSERT INTO dbo.CarPrice VALUES ('10万以下'),('11-20万'),('21-30万')
    SELECT * FROM dbo.CarPrice

    --车辆分类
    CREATE TABLE CarXingType
    (
    ID INT PRIMARY KEY IDENTITY,
    CaeXingName VARCHAR(50)
    )
    INSERT INTO dbo.CarXingType VALUES('小级车'),('中级车'),('高级车')

    SELECT * FROM dbo.CarXingType

    --车型分组
    CREATE TABLE CarGroup
    (
    ID INT PRIMARY KEY IDENTITY,
    CarGroupName VARCHAR(50)
    )
    INSERT INTO CarGroup VALUES('自行A'),('自行B'),('自行C')
    SELECT * FROM dbo.CarGroup
    --图片
    CREATE TABLE CarImg
    (
    ID INT PRIMARY KEY IDENTITY,
    ImgTitle VARCHAR(50),
    ImgUlr VARCHAR(500),
    ImgTypeID INT,
    ImgTime DATETIME
    )
    INSERT INTO dbo.CarImg VALUES ('mingzi','lujing',1,'1995-5-5')
    CREATE TABLE CarImgType
    (
    ID INT PRIMARY KEY IDENTITY,
    CarImgTypeName VARCHAR(50)
    )
    INSERT INTO dbo.CarImgType VALUES('车型内饰'),('车型外观')
    select a.*,b.CarImgTypeName AS CarImgTypeName from CarImg a join CarImgType b on a.ImgTypeID = b.ID


    SELECT * FROM dbo.CarPinPai
    SELECT * FROM dbo.CarPrice

    --增删改存储过程
    CREATE PROC Car_InsertUpdateDelete
    (
    @ID INT , --主键
    @CarName VARCHAR(80), --车名
    @CarPinPaiID VARCHAR(50), --品牌id
    @CarTypeID VARCHAR(50), --车型
    @CarTyoeID2 VARCHAR(50), --车型2
    @CarImg VARCHAR(500), --车辆图片
    @CarRemark VARCHAR(500), --车辆描述
    @CarXingShi VARCHAR(100), --车辆形式
    @CarQuDong VARCHAR(100), --车辆驱动
    @CarFaDongJi VARCHAR(100), --发动机
    @CarZhouJu VARCHAR(100), --车辆轴距
    @CarPaiLiang VARCHAR(100), --车辆排量
    @CarZhiLiang INT, --车辆最大质量(KG)
    @CarNiuJu VARCHAR(100), --车辆扭矩
    @CarZhengBei INT, --整备质量(KG)
    @CarRanYou VARCHAR(50), --车辆燃油类型
    @CarYouXiang INT, --邮箱容积(L)
    @CarPriceID VARCHAR(50), --价格区间
    @CarXingTypeID VARCHAR(50), --车型分类
    @CarGroupID VARCHAR(50), --车型分组
    @CarZiXun VARCHAR(50), --热线咨询
    @CarPaiFang VARCHAR(50), --排放标准
    @CarPrice INT, --市场价
    @CarXingNum VARCHAR(50), --型号
    @CarTypeXing VARCHAR(50), --类型
    @CarBaoYang VARCHAR(50), --保养周期
    @CarGong VARCHAR(50), --功能类型
    @CarCreateTime VARCHAR(100), --上市时间
    @CarBianSuXiang VARCHAR(100), --变速箱
    @CarLongWidth VARCHAR(50), --长宽高
    @CarZhanTing VARCHAR(50), --销售展厅
    @CarChangName VARCHAR(50), --厂家名称
    @CarChangAddress VARCHAR(50), --厂家地址
    @CarChangPhone VARCHAR(50), --厂家电话
    @CarChangRemark VARCHAR(500), --厂家描述
    @DataTable_Action_ varchar(10)='' --操作方法 insert:添加 update:修改 delete:删除
    )
    AS
    DECLARE @ReturnValue VARCHAR(20) --返回操作结果
    SET @ReturnValue=-1
    --开启事务
    BEGIN TRAN
    --异常处理
    BEGIN TRY
    --添加
    IF(@DataTable_Action_='Insert')
    BEGIN
    INSERT INTO dbo.Car
    ( ID ,
    CarName ,
    CarPinPaiID ,
    CarTypeID ,
    CarTyoeID2 ,
    CarImg ,
    CarRemark ,
    CarXingShi ,
    CarQuDong ,
    CarFaDongJi ,
    CarZhouJu ,
    CarPaiLiang ,
    CarZhiLiang ,
    CarNiuJu ,
    CarZhengBei ,
    CarRanYou ,
    CarYouXiang ,
    CarPriceID ,
    CarXingTypeID ,
    CarGroupID ,
    CarZiXun ,
    CarPaiFang ,
    CarPrice ,
    CarXingNum ,
    CarTypeXing ,
    CarBaoYang ,
    CarGong ,
    CarCreateTime ,
    CarBianSuXiang ,
    CarLongWidth ,
    CarZhanTing ,
    CarChangName ,
    CarChangAddress ,
    CarChangPhone ,
    CarChangRemark
    )
    VALUES ( @ID ,
    @CarName ,
    @CarPinPaiID ,
    @CarTypeID ,
    @CarTyoeID2 ,
    @CarImg ,
    @CarRemark ,
    @CarXingShi ,
    @CarQuDong ,
    @CarFaDongJi ,
    @CarZhouJu ,
    @CarPaiLiang ,
    @CarZhiLiang ,
    @CarNiuJu ,
    @CarZhengBei ,
    @CarRanYou ,
    @CarYouXiang ,
    @CarPriceID ,
    @CarXingTypeID,
    @CarGroupID ,
    @CarZiXun ,
    @CarPaiFang ,
    @CarPrice ,
    @CarXingNum ,
    @CarTypeXing ,
    @CarBaoYang ,
    @CarGong ,
    @CarCreateTime,
    @CarBianSuXiang,
    @CarLongWidth ,
    @CarZhanTing ,
    @CarChangName ,
    @CarChangAddress,
    @CarChangPhone ,
    @CarChangRemark
    )
    SELECT @ReturnValue=SCOPE_IDENTITY()
    END
    --删除
    IF(@DataTable_Action_='Delete')
    BEGIN
    DELETE dbo.Car WHERE ID=@ID
    SET @ReturnValue=@@ROWCOUNT
    END
    COMMIT TRAN
    END TRY
    BEGIN CATCH
    ROLLBACK TRAN
    END CATCH
    SELECT @ReturnValue
    exec [commonPagination] @columns,@tableName,@orderColumnName,@order,@where,@pageIndex,@pageSize,@pageCount OUTPUT

    --通用存储过程
    create PROCEDURE [dbo].[commonPagination]
    @columns varchar(500), --要显示的列名,用逗号隔开
    @tableName varchar(100), --要查询的表名
    @orderColumnName varchar(100), --排序的列名
    @order varchar(50), --排序的方式,升序为asc,降序为 desc
    @where varchar(100), --where 条件,如果不带查询条件,请用 1=1
    @pageIndex int, --当前页索引
    @pageSize int, --页大小(每页显示的记录条数)
    @pageCount int out --总页数,输出参数
    as
    begin
    declare @sqlRecordCount nvarchar(1000) --得到总记录条数的语句
    declare @sqlSelect nvarchar(1000) --查询语句
    set @sqlRecordCount=N'select @recordCount=count(*) from ' +@tableName + ' where '+ @where

    declare @recordCount int --保存总记录条数的变量
    exec sp_executesql @sqlRecordCount,N'@recordCount int output',@recordCount output

    --动态 sql 传参
    if( @recordCount % @pageSize = 0) --如果总记录条数可以被页大小整除
    set @pageCount = @recordCount / @pageSize --总页数就等于总记录条数除以页大小
    else --如果总记录条数不能被页大小整除
    set @pageCount = @recordCount / @pageSize + 1 --总页数就等于总记录条数除以页大小加1

    set @sqlSelect =
    N'select '+@columns+' from (
    select row_number() over (order by '
    +@orderColumnName+' '+@order
    +') as tempid,* from '
    +@tableName+' where '+ @where
    +') as tempTableName where tempid between '
    +str((@pageIndex - 1)*@pageSize + 1 )
    +' and '+str( @pageIndex * @pageSize)
    exec (@sqlSelect) --执行动态Sql
    end

  • 相关阅读:
    php 小试 mysql-zmq-plugin 和 pthreads
    svn:previous operation has not finished
    Http Header里的Content-Type
    sublime text使用及常见问题
    Less:优雅的写CSS代码
    gulp:更简单的自动化构建工具
    js实现『加载更多』功能实例
    JSONP浅析
    使用JSSDK集成微信分享遇到的一些坑
    JavaScript模板引擎实例应用
  • 原文地址:https://www.cnblogs.com/Wangyang11/p/10003556.html
Copyright © 2011-2022 走看看