2010-05-11 3 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

Реляционные базы данных не работают по строкам, а вместо них. Таким образом, каждый оператор insert является инкапсулированной операцией: либо вся операция работает, либо вся вставка откатна. Тем не менее, некоторые системы баз данных, в частности MS Access, позволят игнорировать строки, которые не позволяют выполнить проверку. Тем не менее, за кулисами, Access вставляет каждую строку по одному, а не как набор. Большинство интерфейсов СУБД этого не делают, включая SQL Server. Если вы хотите пропустить строки, которые не прошли проверку, вам необходимо отфильтровать их из вставки.

+0

Это не полностью решена моя проблема, но она дала некоторую идею о том, как решить эту проблему. – Dinesh

Смежные вопросы