2010-05-11 60 views
0

我們有一條語句,即在臨時表中插入一些行(例如,10行),同時插入第5行,但它有一個問題列格式並給出錯誤,然後停止插入行。 我想要的是,它應該跳過錯誤行並插入有效的行。 對於那些錯誤行,它可以跳過該錯誤列並插入一些空值&不同的狀態。如何在將數據插入數據庫時​​跳過無效行

create table #tb_pagecontent_value (pageid int,formid uniqueidentifier, id_field xml,fieldvalue xml,label_final xml) 
… 
… 

insert into #tb_pagecontent_xml 
     select A.pageid,B.formid,A.PageData.query('/CPageDataXML/control') 
     from Pagedata A inner join page B on A.PageId=B.PageId 
     inner join FormAssociation C on B.FormId=C.FormId 
     where B.pageid in (select pageId from jobs where jobtype='zba' and StatusFlag!=1) 

在上面例如,我想要應用該邏輯。 任何幫助表示讚賞。

回答

2

關係數據庫不是逐行工作,而是按集合工作。因此,每個插入語句都是一個封裝的操作:整個操作或者整個插入被回滾。也就是說,一些數據庫系統,特別是MS Access,將允許忽略驗證失敗的行。但是,在幕後,Access一次一行地插入每行,而不是一組。大多數DBMS接口不會執行此操作,包括SQL Server。如果您想跳過驗證失敗的行,則需要將其從插入過濾出來。

+0

它沒有完全解決我的問題,但它已經給出了一些關於如何解決這個問題的想法。 – Dinesh 2010-05-14 07:02:50

相關問題