1、  首先创建存储过程;

2、  然后分别创建序列,生成基金公司编号、基金代码、活期账号、理财账号、基金账户、合同号。要求如下:

  • 基金公司编号,字母K+5位数字。
  • 基金代码,字母V+6位数字。
  • 活期账号,13位数字。
  • 理财账号,13位数字。
  • 基金账户,字母L+5位数字。
  • 合同号,字母Z+6位数字。

3、 在创建存储过程中,在添加表数据的时候,自动添加生成的主键编号。【存储过程添加数据】

  1. use Funds
  2. go
  3. //创建存储过程:基金公司编号,字母K+5位数字
  4. -- 基金公司编号,字母K+5位数字。
  5. alter proc Proc_Create_FundCompanyID
  6. @ID varchar() out ---定义为输出参数
  7. as
  8. begin
  9. declare @num int
  10. select top @ID=[CompanyId] from [dbo].[FundCompany] order by [CompanyId] desc
  11. --判断数据库中是否含有数据
  12. if(@ID is null)
  13. begin
  14. set @ID='K00001'
  15. end
  16. else
  17. begin
  18. -- 截取数字部分
  19. Set @ID =right(@ID,) ---
  20. -- 把字符型的数字转换为整型
  21. set @num = CONVERT(int,@ID) ---
  22.  
  23. set @num =@num +;
  24. --拼接 补齐右边的位数
  25. set @ID = ''+convert(varchar(), @num)
  26. select @ID
  27.  
  28. Set @ID =right(@ID,)
  29. set @ID='K'+@ID
  30. end
  31. end
  32.  
  33. go
  34.  
  35. -- 调用存储过程
  36.  
  37. declare @companyId varchar()
  38. exec Proc_Create_FundCompanyID @companyId out
  39. select @companyId
  40.  
  41. //创建活期账号,13位数字。
  42. --活期账号,13位数字。
  43. ----- :: 毫秒数
  44.  
  45. alter proc Proc_Create_CurrentAccount
  46. @Account nvarchar() out
  47. as
  48. begin
  49. declare @str nvarchar()
  50. Set @str = CONVERT(nvarchar(),getdate(),)
  51. set @str = REPLACE(@str,'-','')
  52. set @str = REPLACE(@str,'T','')
  53. set @str = REPLACE(@str,':','')
  54. set @str = REPLACE(@str,'.','')
  55. set @Account =left(@str,)+RIGHT(@str,)
  56. end
  57. go
  58.  
  59. declare @account nvarchar()
  60. exec Proc_Create_CurrentAccount @account out
  61. select @account

  62. //向表中添加数据
  63. create proc Proc_Insert_FundCompany
  64. @Name nvarchar(),
  65. @Content nvarchar(),
  66. @Money money,
  67. @State bit
  68. as
  69. begin
  70. declare @companyId varchar()
  71. exec Proc_Create_FundCompanyID @companyId out
  72. insert into [dbo].[FundCompany] values(@companyId,@Name,@Content,@Money,@State)
  73. end
  74. go
  75.  
  76. exec Proc_Insert_FundCompany '呵呵100','哎呦喂',5,
  77.  
  78. select * from [dbo].[FundCompany]
  79.  
  80. create proc Proc_Insert_Fund
  81. @CompanyId nvarchar()
  82. as
  83. begin
  84. select
  85.  
  86. --insert into (插入数据)
  87. end
  88.  
  89. go

SQL 创建存储过程,让主键自增的更多相关文章

  1. 通过SQL创建一个有主键自动递增有默认值不为空有注释的表

    -- create database db_std_mgr_sys; use db_std_mgr_sys; create table student( std_id bigint not null ...

  2. oracle数据库创建表且主键自增

    唠叨几句:几年前的知识忘却了,整理一下笔记,提供一下方便 1.创建数据库表 设置主键 create table users( userid number(10) primary key, /*主键,自 ...

  3. Oracle创建触发器实现主键自增

    CREATE OR REPLACE TRIGGER "trigger_empl" before insert on extjsTest1.t_empl for each row b ...

  4. Oracle 学习----:创建表(主键自增)

    一.创建表 create table testTable ( Id numbere, name varchar2(100), age number, createTime date, primary ...

  5. SQL Server 2008设置主键为自增

    环境:SQL Server 2008 问题:设置主键,将主键设为自增. 解决:点击table->选中表->design->选中需要设置主键的字段,单击右键"设置主键&quo ...

  6. 使用navicat操作PostPreSql创建表并设置主键自增和触发器

    使用navicat操作PostPreSql创建表并设置主键自增和触发器 1).创建递增序列 2).创建表,使用序列,设置主键递增 3)定义触发函数 自动生成时间戳函数 CREATE OR REPLAC ...

  7. sql server 2000 单主键高效分页存储过程 (支持多字段排序)

    sql server 2000 单主键高效分页存储过程 (支持多字段排序) Create PROC P_viewPage             /*              nzperfect [ ...

  8. psql 关于主键自增的问题

    在psql中往往我们需要设置一个自增的主键id字段,psql中不像SQL Server那样点选 打钩傻瓜式就能设置好的,是需要创建序列的:CREATE SEQUENCE,关键字SEQUENCE. 我们 ...

  9. (2.10)Mysql之SQL基础——约束及主键重复处理

    (2.10)Mysql之SQL基础——约束及主键重复处理 关键词:mysql约束,批量插入数据主键冲突 [1]查看索引: show index from table_name; [2]查看有约束的列: ...

  10. 使用powerdesigner建模时设置主键自增的问题

    研究了一下,其实只要双击表,选择columns,再双击在你所要设为自增型的键上(比如你的id)或者右键选择Properties,弹出一个ColumnProperties 对话框,我们看到有标识 ide ...

随机推荐

  1. jmeter-Java-MongoDB 数据库增删改查操作

    在日常测试过程中会发现有些测试数据是通过数据库来获取的,一般常用的数据比如SQL .Oracle,此类数据库jmeter有专门的插件进行使用JDBC,今天跟大家说一说关于Mongodb这个数据库jme ...

  2. 性能百万/s:腾讯轻量级全局流控方案详解

    WeTest 导读 全新的全局流控实现方案,既解决了目前流控的实现难点,同时保证运行稳定且流控准确的前提下,实现更简单,部署成本更低,容灾能力更强. 该方案组件化之后,可以推广到别的有需要的部门使用, ...

  3. Java面向对象之抽象类,接口

    抽象类: 含有抽象方法的类被声明为抽象类 抽象方法由子类去实现 含有抽象方法的类必须被声明为抽象类 抽象类被子类继承,子类(如果不是抽象类)必须重写抽象类中的所有抽象方法 抽象方法: 声明而未被实现的 ...

  4. nyoj_5:Binary String Matching

    简单字符串匹配 题目链接 #include<iostream> #include<cstring> using namespace std; int fun(char*aa,c ...

  5. 消息中间件Client模块划分

    上图是之间讨论确定的系统架构(后续内容会按照这个架构来叙述),其中: 客户端包含Producer和Consumer两大块 客户端需要和NameServer交互来获取元数据 客户端需要和Broker交互 ...

  6. JavaScript系统学习小结——Object类型、Array类型

    今天学习JavaSript中引用变量中的Object类型和Array类型: 1. Js中大多数引用类型值都是Object类型的实例,Object类型在应用程序中存储和传输数据时,是非常理想的选择: 创 ...

  7. 关于hibernate的缓存使用(转)

    原文链接:http://blog.csdn.net/woshichenxu/article/details/586361#t0 1.     关于hibernate缓存的问题: 1.1.1.      ...

  8. Vue项目搭建完整剖析全过程

    Vue项目搭建完整剖析全过程 项目源码地址:https://github.com/ballyalex 有帮助的话就加个星星呗~!  项目技术栈:vue+webpack+bower+sass+axios ...

  9. nopCommerce 3.9 大波浪系列 之 可退款的支付宝插件(上)

    一.简介 nop通过插件机制可以支持更多的支付扩展,我们通过编写支持退款的支付宝插件来更好的理解支付插件的扩展. 先分享下支付宝插件源码点击下载,由于时间原因,本篇只介绍使用该插件,下一篇结合插件进行 ...

  10. 双向循环链表(C语言描述)(三)

    代码清单 // linkedlist.h #ifndef __LINKEDLIST_H__ #define __LINKEDLIST_H__ #include <assert.h> #in ...