У меня есть эта хранимая процедура, которая читает данные из XML и делает некоторые вставки
ALTER procedure [dbo].[SP_InsertIOs]
@iosxml xml AS
DECLARE @currRecord int
-- parse the records from the XML
EXECUTE sp_xml_preparedocument @currRecord OUTPUT, @iosxml
BEGIN TRY
INSERT INTO SN_IO ( [C1] ,[C2] ,[C3] )
SELECT [C1] ,[C2] ,[C3]
FROM OPENXML (@currRecord, 'ios/io', 1)
WITH ([C1] [varchar](25) 'C1',
[C2] [varchar](25) 'C2',
[C3] [varchar](20) 'C3' )
END TRY
BEGIN CATCH
//SELECT SOME ERROR
END CATCH
EXECUTE sp_xml_removedocument @currRecord
XML выглядит так
<ios>
<io>
<C1>a</C1>
<C2>b</C2>
<C3>c</C3>
</io>
<io>
<C1>x</C1>
<C2>y</C2>
<C3>z</C3>
</io>
</ios>
Все идет хорошо.
Иногда C1 или C2 или C3 могут быть нулевыми, и вот мои вопросы:
В процедуре при выполнении вставок, если C1 равно нулю или C2 равно нулю или C3 равно нулю, пропустить эту запись и не делать вставку