ALTER TABLE [dbo].[Mobile_Work] ADD [VCM13] varchar(20) NULL GO CREATE proc [dbo].[Nurse_MWORK_INSERT] @lxml ntext, @VAA01 int, @ParentID int, @M_WORK18 varchar(1), @VBI21 varchar(20) As begin DECLARE @iDOM int, @iret int Exec @iret = sp_xml_preparedocument @iDOM OUTPUT, @lXml if @iret > 0 BEGIN exec sp_xml_removedocument @iDOM RAISERROR('解析XML文档时发生错误,错误号: %d.', 16, 1, @iret) with nowait return @iret END create table #tmpWORK( M_WORK02 varchar(100), VAA01 int, VAE01 int, BCE01 int, BCK01A int, ParentID int, M_PRO01 int, VAP01 int, M_WORK10 datetime, VBI21 varchar(20), M_WORK12 varchar(20), M_WORK13 varchar(20), M_WORK14 varchar(20), M_WORK15 varchar(20), M_WORK16 varchar(20), M_WORK17 varchar(20), M_WORK18 varchar(1), M_WORK19 varchar(500), BCK01B int, BCK03 varchar(10), BCQ04 varchar(10), M_WORK23 int, M_WORK24 int, M_WORK25 varchar, M_WORK26 varchar, M_WORK27 int, M_WORK28 int, M_WORK29 varchar, M_WORK30 varchar, VCM13 varchar(20)) INSERT INTO #tmpWORK SELECT * from OpenXml(@iDOM,'/Root/M_WORK/Ie',8) with( M_WORK02 varchar(100), VAA01 int, VAE01 int, BCE01 int, BCK01A int, ParentID int, M_PRO01 int, VAP01 int, M_WORK10 datetime, VBI21 varchar(20), M_WORK12 varchar(20), M_WORK13 varchar(20), M_WORK14 varchar(20), M_WORK15 varchar(20), M_WORK16 varchar(20), M_WORK17 varchar(20), M_WORK18 varchar(1), M_WORK19 varchar(500), BCK01B int, BCK03 varchar(10), BCQ04 varchar(10), M_WORK23 int, M_WORK24 int, M_WORK25 varchar, M_WORK26 varchar, M_WORK27 int, M_WORK28 int, M_WORK29 varchar, M_WORK30 varchar, VCM13 varchar(20)) If not exists(select * from #tmpWORK) BEGIN RAISERROR('提交文档错误,条码信息为空', 16, 1) with nowait RETURN 1 END begin tran insert into Mobile_Work select * from #tmpWORK if @M_WORK18='N' BEGIN update Mobile_Work set M_WORK18='N' where VAA01=@VAA01 and ParentID=@ParentID and VBI21=@VBI21 END commit tran end