У меня есть хранимая процедура, подобная этой:
ALTER PROCEDURE [dbo].[insert_sms]
(@msg VARCHAR(MAX), @nodeid INT)
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO dbo.ManAlarm ([Mobile], [Content])
VALUES ((SELECT Mobile FROM NodesMobileSMS WHERE NodeID = @nodeid), @msg);
END
Как мне написать скрипт цикла, который с каждым номером мобильного телефона в (select Mobile from NodesMobileSMS)
будет выполнять запрос на вставку?
Edit :
select Mobile
from NodesMobileSMS
where NodeID = @nodeid
вернет "1; 2; 3; 4; 5" (динамические значения для каждого запроса выбора), и я хочу написать цикл для каждого числа в "1;2; 3; 4; 5 ", он вставит строку в ManAlarm
:
INSERT INTO dbo.ManAlarm ([Mobile], [Content])
VALUES (1, @msg);
INSERT INTO dbo.ManAlarm ([Mobile], [Content])
VALUES (2, @msg);
...
INSERT INTO dbo.ManAlarm ([Mobile], [Content])
VALUES (5, @msg);
, но НЕ вставит так:
INSERT INTO dbo.ManAlarm ([Mobile], [Content])
VALUES ('1;2;3;4;5', @msg);
Edit2 : я написал функцию splitString и вставил с запросом:
INSERT INTO dbo.ManAlarm ([Mobile], [Content])
SELECT *,'message' from dbo.splitString('1;2;3;4;5',';');
Это успешно! Спасибо всем!