IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sp_DBImportMMEPossibleChannels]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[sp_DBImportMMEPossibleChannels] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sp_DBImportMMEPossibleChannels]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[sp_DBImportMMEPossibleChannels] AS' END GO ALTER PROCEDURE [dbo].[sp_DBImportMMEPossibleChannels] @MMEPossibleChannels xml ,@errorNumber int output ,@errorMessage nvarchar(250) output AS BEGIN begin try begin transaction tMMEPossibleChannels insert into [dbo].[MMEPossibleChannels] ([TYPE] ,[TEST_OBJECT] ,[POSITION] ,[TRANS_MAIN_LOC] ,[FINE_LOC_1] ,[FINE_LOC_2] ,[FINE_LOC_3] ,[PHYSICAL_DIMENSION] ,[DIRECTION] ,[DEFAULT_FILTER_CLASS] ,[TEXT_L1] ,[TEXT_L2] ,[VERSION] ,[DATE] ,[REMARKS] ,[EXPIRED] ,[SORTKEY] ,[PICTURE_SHORTNAME] ,[LAST_CHANGE] ,[LAST_CHANGE_TEXT] ,[HISTORY]) select t.x.value('(./TYPE)[1]', 'nvarchar(50)') ,t.x.value('(./TEST_OBJECT)[1]', 'nvarchar(50) ') ,t.x.value('(./POSITION)[1]', 'nvarchar(50) ') ,t.x.value('(./TRANS_MAIN_LOC)[1]', 'nvarchar(50) ') ,t.x.value('(./FINE_LOC_1)[1]', 'nvarchar(50)') ,t.x.value('(./FINE_LOC_2)[1]', 'nvarchar(50)') ,t.x.value('(./FINE_LOC_3)[1]', 'nvarchar(50)') ,t.x.value('(./PHYSICAL_DIMENSION)[1]', 'nvarchar(50)') ,t.x.value('(./DIRECTION)[1]', 'nvarchar(50)') ,t.x.value('(./DEFAULT_FILTER_CLASS)[1]', 'nvarchar(50)') ,t.x.value('(./TEXT_L1)[1]', 'nvarchar(100)') ,t.x.value('(./TEXT_L2)[1]', 'nvarchar(100)') ,t.x.value('(./VERSION)[1]', 'int') ,t.x.value('(./DATE)[1]', 'datetime') ,t.x.value('(./REMARKS)[1]', 'nvarchar(50)') ,t.x.value('(./EXPIRED)[1]', 'bit') ,t.x.value('(./SORTKEY)[1]', 'nvarchar(50)') ,t.x.value('(./PICTURE_SHORTNAME)[1]', 'nvarchar(50)') ,t.x.value('(./LAST_CHANGE)[1]', 'datetime') ,t.x.value('(./LAST_CHANGE_TEXT)[1]', 'nvarchar(50)') ,t.x.value('(./HISTORY)[1]', 'nvarchar(50)') from @MMEPossibleChannels.nodes('/CustomChannels/CustomChannel') t(x) OPTION (OPTIMIZE FOR ( @MMEPossibleChannels = NULL )) commit transaction tMMEPossibleChannels end try begin catch set @errorNumber = error_number() set @errorMessage = error_message() rollback transaction tMMEPossibleChannels end catch; END GO