zoukankan      html  css  js  c++  java
  • 生成单据编号


    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO

    create procedure [dbo].[sp_getbi](@comp_id varchar(8),@type varchar(50),@flag char(1))
    as
    /*
    功能描述:取下一个编号
    参数说明:
    @comp_id:公司编号
    @type:编号类型
    @flag:标志(R:读取下一个编号;W:读出下一个编号,同时提交到数据库)
    测试:
    execute sp_getbi('','','')
    select * from sys_number
    */
    begin
    declare @rtn int
    --select * from sys_number
    --1、如果数据库没有则插入数据库,如果类型为R,则插入0,如果是类型是W,则插入1
    if not exists(select * from sys_number where comp_id=@comp_id and number_type=@type)
    begin
    if upper(@flag)='R'
    begin
    insert into sys_number(comp_id,number_type,number) values(@comp_id,@type,0)
    end
    else
    begin
    insert into sys_number(comp_id,number_type,number) values(@comp_id,@type,1)
    end
    select 1
    return
    end
    else--1、如果数据库有,则取出值加1作为n,如果类型为R,则直接返回n,如果是类型是W,修改number为n,返回n
    begin
    select @rtn=number from sys_number where comp_id=@comp_id and number_type=@type
    select @rtn=isnull(@rtn,0) + 1
    if upper(@flag)='W'
    begin
    update sys_number set number=@rtn where comp_id=@comp_id and number_type=@type
    end
    select @rtn
    return
    end
    end
    GO

    SET ANSI_NULLS OFF
    GO
    SET QUOTED_IDENTIFIER OFF
    GO

    GO
    /****** 对象: Table [dbo].[sys_number] 脚本日期: 03/21/2013 17:54:41 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_PADDING ON
    GO
    CREATE TABLE [dbo].[sys_number](
    [comp_id] [varchar](8) COLLATE Chinese_PRC_CI_AS NOT NULL,
    [number_type] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,
    [number] [int] NULL,
    [memo] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
    PRIMARY KEY CLUSTERED
    (
    [comp_id] ASC,
    [number_type] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    ) ON [PRIMARY]

    GO
    SET ANSI_PADDING OFF
    GO
    EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'公司编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'sys_number', @level2type=N'COLUMN',@level2name=N'comp_id'
    GO
    EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'编号类型' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'sys_number', @level2type=N'COLUMN',@level2name=N'number_type'
    GO
    EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'sys_number', @level2type=N'COLUMN',@level2name=N'number'
    GO
    EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'备注' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'sys_number', @level2type=N'COLUMN',@level2name=N'memo'

    --execute sp_getbi '001','purchase','r'

  • 相关阅读:
    开启CTF大门
    关于windows下scapy出现log_runtime问题
    Python关于Threading暂停恢复解决办法
    angr入门之CLE
    Linux信号量
    IDApython 命令
    Array 数组对象
    随机数 random()
    四舍五入round()
    向下取整floor()
  • 原文地址:https://www.cnblogs.com/kuailewangzi1212/p/2973963.html
Copyright © 2011-2022 走看看