Мне нужно использовать курсор для вызова хранимой процедуры, которая имеет 2 параметра, которые мне нужно передать из таблицы Customers.
Вот что я имею в виду;
Моя цель - передать все идентификаторы CustomerID и CustomerName из таблицы Customers в мою хранимую процедуру AddCustomers, которая имеет 2 параметра CustomerID и CustomerName.
То есть: AddCustomer [CustomerID], [CustomerName]
[примечание: эта хранимая процедура AddCustomer выполняет фильтрацию некоторых вещей, которые мне нужны для моих приложений]
Таким образом, конечным результатом использования этого CURSOR с хранимой процедурой является DUMP / PASS всех customerID и CustomerName из таблицы Customers в хранимую процедуру AddCustomer.
Я использовал sp_executesql, но не успешно.
Вот что я пробовал, но не работает.
Declare @CustomerID int
Declare @CustomerName varchar(100)
Declare cur CURSOR READ_ONLY
FOR
SELECT CustomerID, CustomerName
from Customers
OPEN cur
FETCH NEXT FROM cur
INTO @CustomerID, @CustomerName
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC AddCustomer @CustomerID, @CustomerName
FETCH NEXT FROM cur
INTO @CustomerID, @CustomerName
END
CLOSE cur
DEALLOCATE cur
Я новичок в использовании курсоров, поэтому не уверен, почему это не работает. Если вы можете предоставить какие-либо подсказки или ссылки, я был бы признателен.
Обновление:
ОК, если Cursor НЕ МОЖЕТ выполнить цикл через хранимую процедуру, ТОГДА может кто-нибудь предоставить решение или подсказку для моей проблемы, которая ПРОЙДЕТ все CustomerID и CustomerName из таблицы Customers
в моей хранимой процедуре AddCustomer, чтобы я мог выполнять фильтрацию каждого из CustomerID и CustomerName, которые я передаю в хранимую процедуру AddCustomer.