В этой хранимой процедуре я прочитал таблицу сторонних поставщиков с именем M_SopInsert
.Нужна помощь для отладки хранимой процедуры T-SQL, которая имеет SQL-скрипты, хранящиеся в таблице
SQLScript
это имя столбца и каждая запись в этой таблице содержит запрос SQL, который делает UPDATE
, INSERT
или DELETE
.
Я вижу фактический скрипт, когда я его отлаживаю, используя Select (см. Ниже). Но сам скрипт не выполняется, и я не вижу никаких ошибок.
Я пробовал hardcoding UPDATE
ниже, и он отлично работает.
В чем может быть проблема?
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
declare @sopScript nvarchar(1000)
select SQLScript into #ControlTbl from M_SopInsert
where soptype = @I_vSOPTYPE and sopnumbe = @I_vSOPNUMBE and lnitmseq = @I_vLNITMSEQ
while exists (select * from #ControlTbl)
begin
select top 1 @sopScript = SQLScript
from #ControlTbl
--exec executesql @sopScript = SQLScript
--select @sopScript
--EXEC sp_executesql @sopScript;
--EXEC sp_executesql "update SOPQty set QTYORDER = '17.89' where LNIT = '16'"
exec sp_executesql @sopScript = SQLScript
delete from #ControlTbl where SQLScript = @sopScript
end
drop table #ControlTbl
return (@O_iErrorState)
Синтаксическая ошибка, о которой вы сказали, что вы скорректировали ее работу, должна была дать Msg 2812, Не удалось найти хранимую процедуру «SQLScript». - это весь код, или это завернуто в 'TRY/CATCH 'или что-то еще? –