SQL 創建存儲過程,讓主鍵自增


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(30) out  ---定義為輸出參數
 7 as
 8     begin
 9         declare @num int
10         select top 1 @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,5)  ---00009
20                 -- 把字符型的數字轉換為整型
21                 set @num = CONVERT(int,@ID)   ---9
22 
23                 set @num =@num +1;
24                 --拼接 0000  補齊右邊的位數 10
25                 set @ID = '0000'+convert(varchar(20), @num)
26                 select @ID
27 
28                 Set @ID =right(@ID,5) 
29                 set @ID='K'+@ID
30             end
31     end
32     
33 go        
34 
35 -- 調用存儲過程
36 
37 declare @companyId varchar(30)
38 exec  Proc_Create_FundCompanyID @companyId out
39 select @companyId
40 
41 //創建活期賬號,13位數字。
42 --活期賬號,13位數字。
43 ---2017-08-25 14:46:45 毫秒數
44 
45 alter proc  Proc_Create_CurrentAccount
46   @Account nvarchar(20) out
47   as
48     begin
49     declare  @str nvarchar(50)
50         Set  @str = CONVERT(nvarchar(50),getdate(),126)
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,1)+RIGHT(@str,12)
56     end
57 go
58 
59 declare @account nvarchar(20)
60 exec Proc_Create_CurrentAccount @account out
61 select @account

68 //向表中添加數據 69 create proc Proc_Insert_FundCompany 70 @Name nvarchar(30), 71 @Content nvarchar(500), 72 @Money money, 73 @State bit 74 as 75 begin 76 declare @companyId varchar(30) 77 exec Proc_Create_FundCompanyID @companyId out 78 insert into [dbo].[FundCompany] values(@companyId,@Name,@Content,@Money,@State) 79 end 80 go 81 82 83 exec Proc_Insert_FundCompany '呵呵100','哎呦喂',500,0 84 85 select * from [dbo].[FundCompany] 86 87 88 89 create proc Proc_Insert_Fund 90 @CompanyId nvarchar(5) 91 as 92 begin 93 select 94 95 --insert into (插入數據) 96 end 97 98 go

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM