Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как через переменную задать числовое возрастающее значение поля?  [new]
Cosmosila
Member

Откуда: Санкт-Петербург
Сообщений: 38

Необходимо задать большой массив значений в поля FieldID и Sequence. Очень много работы ручками.
Подскажите как через переменные задать возрастающие значения полей FieldID и Sequence?
[src] -- ...
INSERT INTO dbo.GridViewFields (GridViewID,FieldID,Sequence,Width) VALUES ('114','2427','24','1485')
INSERT INTO dbo.GridViewFields (GridViewID,FieldID,Sequence,Width) VALUES ('114','2428','25','1485')
INSERT INTO dbo.GridViewFields (GridViewID,FieldID,Sequence,Width) VALUES ('114','2429','26','1485')
INSERT INTO dbo.GridViewFields (GridViewID,FieldID,Sequence,Width) VALUES ('114','2430','27','1485')
INSERT INTO dbo.GridViewFields (GridViewID,FieldID,Sequence,Width) VALUES ('114','2431','28','1485')
-- ... [src]
18 мар 14, 18:51    [15748214]     Ответить | Цитировать Сообщить модератору
 Re: Как через переменную задать числовое возрастающее значение поля?  [new]
Crimean
Member

Откуда:
Сообщений: 13147
а цикл - не предлагать?
ну или что-то типа

select a1.No + a2.No * 10 + ...
( select 0 as No union all select 1 union all ... select 9 ) as a1
cross join
( select 0 as No union all select 1 union all ... select 9 ) as a2
...
18 мар 14, 18:54    [15748232]     Ответить | Цитировать Сообщить модератору
 Re: Как через переменную задать числовое возрастающее значение поля?  [new]
Glory
Member

Откуда:
Сообщений: 104751
declare @FieldID int
decalre @Sequence int
set @FieldID = 2427
...
18 мар 14, 18:55    [15748236]     Ответить | Цитировать Сообщить модератору
 Re: Как через переменную задать числовое возрастающее значение поля?  [new]
Cosmosila
Member

Откуда: Санкт-Петербург
Сообщений: 38
Crimean
а цикл - не предлагать?
ну или что-то типа

select a1.No + a2.No * 10 + ...
( select 0 as No union all select 1 union all ... select 9 ) as a1
cross join
( select 0 as No union all select 1 union all ... select 9 ) as a2
...


цикл тоже бы не помешал
18 мар 14, 19:03    [15748285]     Ответить | Цитировать Сообщить модератору
 Re: Как через переменную задать числовое возрастающее значение поля?  [new]
_djХомяГ
Guest
-------цикл так цикл для >=2005 
declare 
@mytable table (Col1 varchar(100),Col2 varchar(100),Col3 varchar(100),Col4 varchar(100))
declare
@i int,
@j int 
select @i=2427 ,@j=24
with cte
as
(
   select @i as I,@j as j
   union all
   select I+1,J+1
   from CTE
   where I<2431

)
insert into @mytable
select '114' as Col1,convert(varchar,i) as Col2,convert(varchar,J) as Col3,'1485' as Col4 from CTE
OPTION (MAXRECURSION 0);

select * from @mytable
18 мар 14, 19:22    [15748394]     Ответить | Цитировать Сообщить модератору
 Re: Как через переменную задать числовое возрастающее значение поля?  [new]
Cosmosila
Member

Откуда: Санкт-Петербург
Сообщений: 38
_djХомяГ,

_djХомяГ,

declare 
@mytable table (GridViewID int,FieldID int,Sequence smallint,Width int)
declare
@i int,
@j int 
select @i=2427 ,@j=24;
with cte
as
(
   select @i as I,@j as j
   union all
   select I+1,J+1
   from CTE
   where I<2460

)
insert into @mytable
select '112' as GridViewID,convert(int,i) as FieldID,convert(int,J) as Sequence,'1485' as Width from CTE
OPTION (MAXRECURSION 0);

select * from @mytable

INSERT INTO dbo.GridViewFields (GridViewID,FieldID,Sequence,Width)
SELECT GridViewID,FieldID,Sequence,Width
FROM @mytable

Всем большое спасибо за помощь!
минус большая пачка работы ручками +_+
19 мар 14, 13:46    [15752554]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить