|
MERGE запрос
|
|||
---|---|---|---|
#18+
Подскажите, пожалуйста, есть задача: добавить новую запись в таблицу или проапдейтить дату у существующей строки. Это надо следать для двух юзеров @CreatorId и @RequestorId, либо если они сопадают, то один раз Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
В юзинге можно как-то ещё условие сделать для одной записи или двух? Или надо только темповую таблицу создавать и ее уже использовать? Заранее спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2021, 17:36 |
|
MERGE запрос
|
|||
---|---|---|---|
#18+
lsk, ну посмотрите сами, что вы написали. 1. У вас есть блок подготовки данных, но он никак не используется. Вы и записываете, и апдейтите поля переменными, а не полями блока. Зачем в этом блоке "Message = @Message, Date = @Date" тогда? Я не говорю, что это не будет работать, скорее всего будет. Но возможно не так, как вы ожидаете. Но в любом случае код надо писать так, чтобы было всё чётко, понятно, не было лишнего и паразитного. И понятно не только вам. Он должен быть не только работоспособным, но и быть внутренне логически выверенным. 2. Затем. В случае если @CreatorId и @RequestorId совпадают, конструкция Код: sql 1. 2. 3.
выдаст одну строку. Вроде оно вам так и нужно, но что за извратный способ?! Пишите тоже самое через условия и всё. Тем более, если у вас уже готовые переменные начитаны. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
P.S. Никогда не используйте заглавные буквы в командах и операторах. Это просто ужасно и моветон. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2021, 17:55 |
|
MERGE запрос
|
|||
---|---|---|---|
#18+
lsk В юзинге можно как-то ещё условие сделать для одной записи или двух? Или надо только темповую таблицу создавать и ее уже использовать? Далее merge сделает что нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2021, 18:03 |
|
MERGE запрос
|
|||
---|---|---|---|
#18+
Кесарь, согласен в селектах лишние поля. Я наверное непонятно описал задачу. Мне нужно добавить или проапдейтить записать для каждого из этих двух юзеров, для кого-то запись уже может быть, а для кого-то нет, они не связаны. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2021, 18:05 |
|
MERGE запрос
|
|||
---|---|---|---|
#18+
invm, а как может вернуться одна строка? если они будут одинаковые, то там сделается дистинкт? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2021, 18:07 |
|
MERGE запрос
|
|||
---|---|---|---|
#18+
lsk invm, а как может вернуться одна строка? если они будут одинаковые, то там сделается дистинкт? Типа того. Читайте документацию по оператору union и обратите внимание на его параметр all. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2021, 18:10 |
|
MERGE запрос
|
|||
---|---|---|---|
#18+
Кесарь P.S. Никогда не используйте заглавные буквы в командах и операторах. Это просто ужасно и моветон. Никогда не говори "Никогда"! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2021, 19:01 |
|
MERGE запрос
|
|||
---|---|---|---|
#18+
iap Кесарь P.S. Никогда не используйте заглавные буквы в командах и операторах. Это просто ужасно и моветон. Никогда не говори "Никогда"! плюсую, всегда использую upper case для всех ключевых слов в tsql даешь холивар на применение синтаксиса! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2021, 19:04 |
|
MERGE запрос
|
|||
---|---|---|---|
#18+
iap Кесарь P.S. Никогда не используйте заглавные буквы в командах и операторах. Это просто ужасно и моветон. Никогда не говори "Никогда"! Мда, а мужики-то не знают... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2021, 19:21 |
|
|
start [/forum/topic.php?fid=46&fpage=22&tid=1684619]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
72ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 287ms |
total: | 451ms |
0 / 0 |