|
|
|
Изменить цикл
|
|||
|---|---|---|---|
|
#18+
Declare @t table(id varchar(max)) insert into @t(id) values ('731622 11380'), ('731622 11411'), ('731622 11373'), ('731622 11388'), ('731622 11407'), ('731683 1770'), ('731683 1796'), ('731683 1859'), ('731683 1441'), ('731683 1442'), ('731683 1758'), ('7316m4 2716'), ('7316m4 2715'), ('7316m4 2714'), ('731610 34663'), ('731610 34664'), ('731610 34639'), ('731610 34778'), ('731610 34672'), ('731610 34731'), ('731676 15786'), ('731676 15790'), ('731676 15836'), ('731676 15749'), ('731676 15753'), ('731676 15763'), ('731676 15812'), ('731676 15739'), ('731676 15780'), ('731676 15781'), ('7316s1 4410'), ('7316l1 1000033166'), ('7316l1 1000033161'), ('7316l1 1000032629'), ('7316l1 1000037031'), ('7316l1 1000035648'), ('7316l1 1000038199'), ('7316l1 1000034890'), ('7316l1 1000038988'), ('7316l1 1000034280'), ('7316l1 1000032837'), ('7316l1 1000038305'), ('7316l1 1000038306'), ('7316l1 1000036177'), ('7316l1 1000029392'), ('7316l1 1000035628'); Declare @Counter Int; set @Counter = 1; Declare @rec uniqueidentifier; Declare @d datetime SET @d=GETDATE(); Declare curs Cursor FOR SELECT RecipeID FROM T_RECIPE JOIN @t a ON a.id = CONCAT(T_RECIPE.Serial ,' ', T_RECIPE.Number ) GROUP BY RecipeID; Open Curs WHILE @Counter <= 600 Begin FETCH curs INTO @rec; Set @Counter = @Counter + 1; exec sp_executesql N'UPDATE T_RECIPE SET Deleted = @a0,DeleteReason = @a1,DeleteUser = @a2,DeleteDateTime = @a3 WHERE @ID = RecipeID;' ,N'@ID uniqueidentifier,@a0 bit,@a1 varchar(24),@a2 uniqueidentifier,@a3 datetime' ,@ID=@rec,@a0=1,@a1='Истечение срока действия',@a2='B820E301-0FA8-48C6-95C5-98316DA8A5E8',@a3=@d exec sp_RDS_Recipe @CancelDeleted=0,@QueueName=N'rds.registry',@Deleted=1,@IsNew=0,@ID=@rec END Close curs; как можно изменить цикл WHILE чтобы не было такого глупого условия? так как рецептов изначальное кол-во не известно, и можно ли Update вынести за пределы курсора, будет запрос работать быстрее от этого? mysql server 2012 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2016, 06:55 |
|
||
|
|

start [/forum/topic.php?fid=16&gotonew=1&tid=1340602]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
93ms |
get topic data: |
13ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 230ms |
| total: | 445ms |

| 0 / 0 |
