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

Откуда:
Сообщений: 4
Добрый день

Помогите пожалуйста составить транзакицю... не могу понять, как это лучше сделать. Есть таблица:

1234
1234111177450
9872387663320
7893857398720
3452541698720
7894687498720
4235545612340
6332457842350
2568435263320
5632964525680


Цель: считавая id с 3 столбца, искать его в 1 и то значение которое стоит во 2-ом записывать в 4 столбец, в ту строку откуда считал id. Конечный результат выглядет так:


1234
1234111177450
4235545612341111
9872387663324578
7893857398723876
3452541698723876
7894687498723876
6332457842355456
2568435263324578
5632964525682568
5 ноя 17, 16:10    [20928596]     Ответить | Цитировать Сообщить модератору
 Re: Как реализовать транзакцию  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
Ronishh,

Вы взяли значение в столбце 3. И нашли 2 строки с таким значением в столбце 1. В этих двух строках значение в столбце 2 разное - 123 и 234. Внимание, вопрос! Какое значение Вы запишите в столбец 4?
Жду ответа.
5 ноя 17, 16:34    [20928633]     Ответить | Цитировать Сообщить модератору
 Re: Как реализовать транзакцию  [new]
Ronishh
Member

Откуда:
Сообщений: 4
Andy_OLAP,
Sorry, забыл упомянуть, 1 столбец - primery key... Значение всегда уникальное
5 ноя 17, 16:55    [20928648]     Ответить | Цитировать Сообщить модератору
 Re: Как реализовать транзакцию  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
Ronishh
Andy_OLAP,
Sorry, забыл упомянуть, 1 столбец - primery key... Значение всегда уникальное

Ну если совсем по-простому.
update t1
set column4 = t2.column2
from table as t1 with (index=0)
inner join table as t2 with (index=0) on t1.column3 = t2.column1
5 ноя 17, 17:08    [20928662]     Ответить | Цитировать Сообщить модератору
 Re: Как реализовать транзакцию  [new]
Ronishh
Member

Откуда:
Сообщений: 4
Andy_OLAP,

Спасибо за помощь, всё работает...

А вы не могли бы мне в крации объяснить (index=0)?! с таким не проходилость ещё иметь дело
5 ноя 17, 18:01    [20928712]     Ответить | Цитировать Сообщить модератору
 Re: Как реализовать транзакцию  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
Ronishh,

Запрет на использование индекса - мало ли у Вас не primary key clustetered, а primary key nonclustered.
Чтобы был гарантированный table scan, без каких-либо RID Lookup.
5 ноя 17, 18:05    [20928717]     Ответить | Цитировать Сообщить модератору
 Re: Как реализовать транзакцию  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
Ronishh,
Конкретно в этом примере может быть и не нужно. Но для меня это такая хорошая привычка - делать подсказки оптимизатору в движке MSSQL выполнять так, как я хочу, а не как он себе по статистике из таблицы подумает.
5 ноя 17, 18:06    [20928720]     Ответить | Цитировать Сообщить модератору
 Re: Как реализовать транзакцию  [new]
Ronishh
Member

Откуда:
Сообщений: 4
Andy_OLAP,
Понял, спасибо за совет... буду знать
5 ноя 17, 18:18    [20928730]     Ответить | Цитировать Сообщить модератору
 Re: Как реализовать транзакцию  [new]
iap
Member

Откуда: Москва
Сообщений: 46951
Andy_OLAP
Ronishh,
Конкретно в этом примере может быть и не нужно. Но для меня это такая хорошая привычка - делать подсказки оптимизатору в движке MSSQL выполнять так, как я хочу, а не как он себе по статистике из таблицы подумает.

Какое самомнение!
6 ноя 17, 14:20    [20930000]     Ответить | Цитировать Сообщить модератору
 Re: Как реализовать транзакцию  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
автор
делать подсказки оптимизатору в движке MSSQL выполнять так, как я хочу, а не как он себе по статистике из таблицы подумает

о на таких деятелей есть отличная бага, хотя может и пофиксили
6 ноя 17, 14:37    [20930026]     Ответить | Цитировать Сообщить модератору
 Re: Как реализовать транзакцию  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
iap
Andy_OLAP
Ronishh,
Конкретно в этом примере может быть и не нужно. Но для меня это такая хорошая привычка - делать подсказки оптимизатору в движке MSSQL выполнять так, как я хочу, а не как он себе по статистике из таблицы подумает.

Какое самомнение!

+

Я самый крутой эксперт по MSSQL Server среди своего окружения, так что без самомнения никак, увы :)
6 ноя 17, 15:15    [20930090]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить