Author:水如烟
总目录:行政区划数据方案设计
上一篇,行政区划数据数据库的设计(六)
上文实现了把区划码按三个行政级别分成了六个类,分别是:
一级:省
二级:省直辖市、地区州盟
三级:市地辖区、县旗、省直辖县级市
至于这样的命名和分级对不对,我心里也没准,不过修改还是方便的,到时知错了改正就是了。
现在继续说附属部分的全名。
单单给出了区划码和名称,如:654221 额敏县,我们看着也只有干着急的份。需要更多的信息。如是654221 新疆维吾尔自治区塔城地区额敏县,这才是我们需要的,看着也乐意。
全名无非是由省+市+县的名称组成,也就是一级名称+二级名称+三级名称,这是约定俗成的,不知也有相关规定没有,这回我没有去找(应当已有国家标准规定)。
这个定义我可以用函数固定下来了:
△
[Action]. 全名
USE
[
RegionalCodeWorks
]
GO
/* ***** 对象: UserDefinedFunction [Action].[全名] 脚本日期: 09/21/2006 17:55:00 ***** */
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: LzmTW
-- Create date: 20060921
-- Description: 取行政区全名
--=============================================
CREATE FUNCTION [ Action ] . [ 全名 ]
(
@当前时间 [ Base ] . [ RegionalDate ] = N ' Current '
, @一级 nchar ( 2 )
, @二级 nchar ( 2 )
, @三级 nchar ( 2 )
)
RETURNS nvarchar ( 200 )
AS
BEGIN
-- 初始化变量
DECLARE @全名 nvarchar ( 200 )
, @一级全名 nvarchar ( 100 )
, @二级全名 nvarchar ( 100 )
, @三级全名 nvarchar ( 100 )
SET @一级全名 = N ''
SET @二级全名 = N ''
SET @三级全名 = N ''
DECLARE @一级区划码 [ Base ] .RegionalCode
, @二级区划码
GO
/* ***** 对象: UserDefinedFunction [Action].[全名] 脚本日期: 09/21/2006 17:55:00 ***** */
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: LzmTW
-- Create date: 20060921
-- Description: 取行政区全名
--=============================================
CREATE FUNCTION [ Action ] . [ 全名 ]
(
@当前时间 [ Base ] . [ RegionalDate ] = N ' Current '
, @一级 nchar ( 2 )
, @二级 nchar ( 2 )
, @三级 nchar ( 2 )
)
RETURNS nvarchar ( 200 )
AS
BEGIN
-- 初始化变量
DECLARE @全名 nvarchar ( 200 )
, @一级全名 nvarchar ( 100 )
, @二级全名 nvarchar ( 100 )
, @三级全名 nvarchar ( 100 )
SET @一级全名 = N ''
SET @二级全名 = N ''
SET @三级全名 = N ''
DECLARE @一级区划码 [ Base ] .RegionalCode
, @二级区划码