首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

MS-SQL怎样在存储过程里实现自动编号?类似楼房小区编号

2012-10-21 
MS-SQL怎样在存储过程里实现自动编号?类似楼房小区编号?在线等直入主题:现有一张数据表tb:房间编号(tb01)|

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

[解决办法]

SQL code
--> 测试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*/ 

热点排行
Bad Request.