Возможно, я задал этот вопрос очень плохо, но я не уверен на 100%, что мне нужно задать.SQL Server: вызов хранимой процедуры с использованием данных таблицы
Я пытаюсь выполнить итерацию по строкам в таблице и вызвать хранимую процедуру, используя данные из строк.
Это код, который у меня уже есть, проблема с этим связана с синхронизацией (1000 строк занимают около 1 минуты);
--Set up a temp table with all non email alerts
SELECT TOP(1000)
RowNum = ROW_NUMBER() OVER(ORDER BY AlertID),
a.*, i.ImgData
INTO
#temp
FROM
dbo.ALERTS a
JOIN
dbo.IMAGES i ON i.VehicleID = a.VehicleID
WHERE
a.EmailImageSent = 0 OR a.EmailSent = 0
DECLARE @MaxRownum INT
SET @MaxRownum = (SELECT MAX(RowNum) FROM #temp)
DECLARE @Iter INT
SET @Iter = (SELECT MIN(RowNum) FROM #temp)
DECLARE @ImgData VARBINARY(MAX)
WHILE @Iter <= @MaxRownum
BEGIN
SELECT @VehicleID = VehicleID, @ImgData = ImgData
FROM #temp
WHERE RowNum = @Iter
IF @ImgData IS NOT NULL
BEGIN
EXEC dbo.someProcedure @VehicleID, @ImgData
--SELECT 'Image data found for', @VehicleID, @ImgData
END
SET @Iter = @Iter + 1
END
DROP TABLE #temp
Есть в любом случае я могу запустить хранимую процедуру (dbo.someProcedure
) при использовании заявления на основе набора в качестве входных данных?
Извините, если это было задано раньше, я посмотрел и не смог найти ответ или если этот вопрос недостаточно информативен.
Заранее спасибо
Присоединяйтесь к таблице внутри хранимая процедура, вместо передачи каждый раз, когда идентификатор ... – TheGameiswar
таблица температуры видна в рамках вызываемой процедуры, поэтому создать временную таблицу в внешнюю процедуру, то просто проверьте наличие таблицы temp в вызываемой процедуре, чтобы убедиться и получить доступ к ней, как обычно. – Jeremy
Вы также можете посмотреть параметры таблицы. –