MS-SQL怎样在存储过程里实现自动编号?类似楼房小区编号?在线等
直入主题:
现有一张数据表tb:
房间编号(tb01)|楼盘号(tb02)|层数(tb03)|房间号(tb04)
------------------------------------------------------
存储过程只要三个参数,楼盘号a,楼房层数b,房间数c。怎样在存储过程里实现如下思路:
描述:现在想给房间自动编号,规则是:先得到总房间数b*c,然后再逐层编号,例如楼盘号是F1,层数为2,房间数为3,
总的就是6间,编号应该是(一层一层的挨个编号):
现在想通过存储过程生成插入上面6条语句,存储过程示例:myStoreProcess(F1,2,3)
房间编号|楼盘号|层数|房间号
F1-01-01 | F1 | 01 | 01
F1-01-02 | F1 | 01 | 02
F1-01-03 | F1 | 01 | 03
F1-02-01 | F1 | 02 | 01
F1-02-02 | F1 | 02 | 02
F1-02-03 | F1 | 02 | 03
[解决办法]
--> 测试IF OBJECT_ID('pmyStoreProcess') IS NOT NULL DROP PROC pmyStoreProcessGO CREATE PROC pmyStoreProcess@a VARCHAR(10),@b INT,@c INT ASBEGINSELECT 房间编号=@a+'-'+RIGHT(100+a.number,2)+'-'+RIGHT(100+b.number,2), 楼盘号=@a, 层数=RIGHT(100+a.number,2), 房间号=RIGHT(100+b.number,2) FROM master..spt_values a ,master..spt_values b WHERE a.number BETWEEN 1 AND @b AND b.number BETWEEN 1 AND @c AND a.type='p' AND b.type='p'ENDgo--------------开始查询--------------------------EXEC pmyStoreProcess 'F1',2,3----------------结果----------------------------/* 房间编号 楼盘号 层数 房间号F1-01-01 F1 01 01F1-01-02 F1 01 02F1-01-03 F1 01 03F1-02-01 F1 02 01F1-02-02 F1 02 02F1-02-03 F1 02 03*/