应用背景:
笔者在做医院的项目时,发现医疗行业项目都是各自为战,没有一个统一的标准。
虽说已经引入国外的HL7、DICOM协议等,但是因为每家医院的情况和研发实力不尽相同,所以这些标准最终都是流于形式,没有被广泛应用。
这样会产生一个这样的问题,为了适配一个医院,就得新增几个字段,后面数据库的字段会急剧增加,这样对于封装数据库接口来说是个灾难,对以后维护的人员来说也增添需要没必要的负担。
SQL Server 2005 引入了一种称为 XML 的本机数据类型
这个时候sql server中的xml字段是非常不错的选择,把一些差异化的字段统归放在xml字段中。
下面笔者会简单介绍下xml字段的创建和应用
创建
CREATE TABLE t_check (id INT PRIMARY KEY, reserve XML not null)
存放xml格式
<report><req_service_no>0014719505</req_service_no></report>
取值方法1
select reserve.query('/report/req_service_no') from t_check
取值方法2
SELECT reserve.value('(/report/req_service_no)[1]', 'nvarchar(max)') FROM [dbo].[t_check]
查询
SELECT * FROM [dbo].[t_check] WHERE reserve.value('(/report/req_service_no)[1]', 'nvarchar(max)') like '0014719505'