У меня есть список значений, которые, т.е.ForEach Loop в SQL Server
in ('1xxx','12xx','21xx','98xx','00xx')
я хочу использовать для сценария вставки. Как написать цикл for в SQL Server, используя каждое значение в цикле? Я думаю, что-то вроде.
For value in ('1xxx','12xx','21xx','98xx','00xx')
select value
endloop;
Im пытается просто это
INSERT INTO [dbo].[TimeCard]
VALUES
('test'+Right(NewId(),12),'6121126800','5102289289',CONVERT(DATE,'01-01-2013'),CONVERT(DATE,'01-01-2013'),20,CURRENT_TIMESTAMP,NULL)
GO
INSERT INTO [dbo].[TimeCard]
VALUES
('test'+Right(NewId(),12),'6121126800','5102289289',CONVERT(DATE,'01-08-2013'),CONVERT(DATE,'01-08-2013'),20,CURRENT_TIMESTAMP,NULL)
GO
INSERT INTO [dbo].[TimeCard]
VALUES
('test'+Right(NewId(),12),'6121126800','5102289289',CONVERT(DATE,'01-15-2013'),CONVERT(DATE,'01-15-2013'),20,CURRENT_TIMESTAMP,NULL)
GO
....
я должен вставить эти записи для нескольких сценариев тестирования.
1. создать временную таблицу. 2. Заполните его предметами. 3. Создайте курсор в таблице. 4. итерации с помощью курсора. – MarcinJuraszek
SQL Server не имеет 'FOR EACH', он имеет' DO WHILE': [Clicky] (http://technet.microsoft.com/en-us/library/ms178642.aspx). Но, вероятно, есть лучшие способы обрабатывать это, чем цикл или курсоры. – Andrew
Откуда этот список? Лучше всего начинать «думать в наборах», а не итерации. Если ваш список пришел из запроса, вы можете легко вставить результат в другую таблицу. – n8wrl