запрос с циклом в MS SQL 2000
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



запрос с циклом в MS SQL 2000 Expand / Collapse
Автор
Сообщение
15.08.2005 13:44
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 17.08.2005 8:19
Сообщ.: 18, Visits: 199
Всем привет!
[bold]Люди, пожалуйста, помогите новичку написать следующий запрос: [/bold]

в таблице "Referats", состоящей из 13 полей, у меня сейчас около 4000 записей.
Есть одна запись с полем "InventoryID"=9999. Мне нужно с помощью запроса занести в базу 40000 таких же записей; содержимое всех полей должно повторяться, только в поле "InventoryID" вместо 9999 должно к старому значению 9999 должна приписываться буква "К" и номер цикла. Например, при значении цикла=1 в поле "InventoryID" должно быть написано "9999К1", при значении=2 должно быть написано "9999К2" и т.д. до 40000.
Сообщ. #878226
15.08.2005 16:29
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Приведи названия полей в таблице и их типы.
Сообщ. #878257
15.08.2005 17:00
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

администратор
Last Login: 13.11.2007 13:41
Сообщ.: 4 421, Visits: 49 251
insert into New_Table
values
select field1, field2, .... , InventoryID+''K''+ltrim(str(cycl)) FROM Referats
Сообщ. #878259
15.08.2005 17:00
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

администратор
Last Login: 13.11.2007 13:41
Сообщ.: 4 421, Visits: 49 251
только у K не кавычки, а апострофы
Сообщ. #878260
17.08.2005 8:23
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 17.08.2005 8:19
Сообщ.: 18, Visits: 199
Спасибо за подсказки! Я тут еще в книгах порылась и нашла ответ.

DECLARE @K int
SET @K=1
WHILE @K < 40000
BEGIN
INSERT INTO Referats (InventoryID , Autors, ReportName, ReportYear, OrgName, OrgAdress, Abstract, KeyWords, ColBooks, ColFolders, ColPervInf, dostup_k_referat)
select (''9999K''+CAST(@K as varchar)), Autors, ReportName, ReportYear, OrgName, OrgAdress, Abstract, KeyWords, ColBooks, ColFolders, ColPervInf, dostup_k_referat
from Referats
where InventoryID = ''9999''

SELECT @K=@K+1
END
Сообщ. #878404
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl, Alexey Spirin

Время GMT +3:00, Сейчас 9:06