2010-12-14 2 views
0

Например заменитьЗаменить диапазон чисел с различным диапазоном чисел в SQL

TransactionID 
-------- 
1 
2 
3 

с

TransactionID 
-------- 
95 
96 
97 

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

Пример:

Update BatchItem 
    set TransactionID = '95' 
    where BatchItemID = 12345**6** 


Update BatchItem 
    set TransactionID = '96' 
    where BatchItemID = 12345**7** 


Update BatchItem 
    set TransactionID = '97' 
    where BatchItemID = 12345**8** 

Как я пишу выше заявление, чтобы обновить несколько TransactionID в последовательности?

ответ

0

Не уверен, что 100% я понимаю, чего вы пытаетесь достичь. Вы пытаетесь сделать что-то подобное?

declare @offset int 
set @offset = 94 

update BatchItem 
    set TransactionID = TransactionID + @offset 
    where BatchItemID = 123456 
0

Попробуйте это:

UPDATE BatchItem SET TransactionId = TransactionId + 94 

UPDATE

Это, как представляется, "быстрая и грязная" версия @ ответ Джо. Я оставлю это на случай, если вы найдете его менее запутанным, чем его ответ ...

+1

Вы говорите, что я смущаю людей? :-) –

+1

Что вы имеете в виду? Я не понимаю ... –

+0

Abe, ваш SQL-запрос имеет смысл, но он не выполняет мою работу. Я думаю, ваше заявление действительно дает мне представление. Фактически, я нахожу и заменяю в SQL transactionID, и все транзакционные идентификаторы находятся в последовательности. – nick