Обновление значений таблицы из той же таблицы без использования запроса выбора - PullRequest
0 голосов
/ 18 ноября 2011

Мое требование
Обновление значений таблицы из той же таблицы без использования запроса выбора, этот запрос не повлияет на строки.Моя цель: Update val2 of #table where slno=1 with the value of val2 of slno=2 Есть ли другой способ без использования этого метода

 Declare @val2 nvarchar(50)
  select @val2=val2  from #table where slno=2
  update #table set val2=@val2 where slno=1


    create table #table 
    (
     slno int identity(1,1),
     val nvarchar(50),
     val2 nvarchar(50)
    )

    insert into #table(val,val2)values('1',newID())
    insert into #table(val,val2)values('1',newID())
    insert into #table(val,val2)values('1',newID()) 

    select * from #table 

    update #table set val2=T.val2 
      from #table T where slno=1 and T.slno=2



      drop table #table

У меня много записей в таблице.Так что, если я выбираю и обновляю, это может повлиять на производительность.

1 Ответ

0 голосов
/ 18 ноября 2011

Пожалуйста, предоставьте больше информации.

У вас есть только 2 строки в вашей таблице?

Зачем вам нужно такое обновление?

Я полагаю, что ваша структура БД неверна, но я не могу точно сказать, пока вы не объясните, зачем вам это нужно.

В любом случае, я могу предложить плохой способ сделать это без использования select. Вы можете самостоятельно присоединиться к столу. Было бы лучше иметь столбец сложения, но если у вас его нет, как вы должны сделать

    UPDATE T1
    SET T1.val2 = T2.val2
    FROM #table T1 INNER JOIN #table T2 
       ON T1.slno = 1 AND T2.slno = 2 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...