|
Объеденить два запроса на ходу
|
|||
---|---|---|---|
#18+
Есть запрос, который копирует данные из одной таблицы в другую Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
И есть запрос по непопаданию дублирующих записей Код: vbnet 1. 2. 3. 4. 5.
Оба эти запроса рабочие Внимание вопрос: Как объединить эти два запроса, чтобы копирование данные в таблицу уже не попадали дублирующие? Заранее знатоков благодарю за помощь! ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2017, 10:11 |
|
Объеденить два запроса на ходу
|
|||
---|---|---|---|
#18+
По "непопаданию" куда? Имхую, что вам бы сначала с запросом разобраться, а потом уже объедЕнять на ходу. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2017, 10:25 |
|
Объеденить два запроса на ходу
|
|||
---|---|---|---|
#18+
Сделай выборку не сразу в ScanProzorro_F, а сначала во временную таблицу, затем оттуда нужное вставь. Или подзапросом. PS Вопрос не там задаешь, это это вопрос по T-SQL, лучше спросить в форуме Microsoft SQL Server ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2017, 10:26 |
|
Объеденить два запроса на ходу
|
|||
---|---|---|---|
#18+
Перенести всё это хозяйство в ХП. P.S. DDL в рабочем коде, за исключением создания временных таблиц (в MSSQL) - зло. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2017, 10:27 |
|
Объеденить два запроса на ходу
|
|||
---|---|---|---|
#18+
INSERT INTO FROM TABLE https://www.w3schools.com/sql/sql_insert_into_select.asp ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2017, 10:35 |
|
Объеденить два запроса на ходу
|
|||
---|---|---|---|
#18+
Bujhm_C Как объединить эти два запроса, чтобы копирование данные в таблицу уже не попадали дублирующие? Merge ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2017, 10:50 |
|
Объеденить два запроса на ходу
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, Может вы и правы. Но я просто "прусь" написанием кода на Vb.net даже если это касается запросов на SQL SERVER. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2017, 10:54 |
|
Объеденить два запроса на ходу
|
|||
---|---|---|---|
#18+
Bujhm_CСон Веры Павловны, Может вы и правы. Но я просто "прусь" написанием кода на Vb.net даже если это касается запросов на SQL SERVER. так ему и надо этому SQLServer! ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2017, 10:57 |
|
Объеденить два запроса на ходу
|
|||
---|---|---|---|
#18+
Bujhm_C, нафига тогда SQL сервер? пропрись на VB так, чтоб всё прямо на месте мержилось и вставлялось, а потом булк экспортом херак, херак. Но главное вмазался бейсиком. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2017, 11:27 |
|
Объеденить два запроса на ходу
|
|||
---|---|---|---|
#18+
Roman MejtesBujhm_C, нафига тогда SQL сервер? пропрись на VB так, чтоб всё прямо на месте мержилось и вставлялось, а потом булк экспортом херак, херак. Но главное вмазался бейсиком. бэйсик вставляет так, что от него пруцца ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2017, 12:57 |
|
Объеденить два запроса на ходу
|
|||
---|---|---|---|
#18+
Bujhm_C, Зря я эту тему поднял. Это мое субъективное мнение. Не по существу по постить здесь гораздо больше людей, чем предложить что то дельное. Да, ну и ладно! Сам нашел решение. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Всем спасибо, кто пытался помочь. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2017, 14:45 |
|
Объеденить два запроса на ходу
|
|||
---|---|---|---|
#18+
Bujhm_CBujhm_C, Зря я эту тему поднял. Это мое субъективное мнение. Не по существу по постить здесь гораздо больше людей, чем предложить что то дельное. Да, ну и ладно! Сам нашел решение. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Всем спасибо, кто пытался помочь. По пощу вопрос: почему в общем случае вы проверяете существование одной таблицы, а удаляете другую? "IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[" + "ScanProzorro_F" + "]') AND type in (N'U')) BEGIN Drop Table " + "ScanProzorro_F" + " END " + _ ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2017, 11:01 |
|
Объеденить два запроса на ходу
|
|||
---|---|---|---|
#18+
Ролг Хупин, авторпочему в общем случае вы проверяете существование одной таблицы, а удаляете другую? "IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[" + "ScanProzorro_F" + "]') AND type in (N'U')) BEGIN Drop Table " + "ScanProzorro_F" + " END " + _ Тут все верно. Данные из таблицы ScanProzorro копируются в ScanProzorro_F. потому предварительно проверяю существование первичной ScanProzorro Код: vbnet 1.
А удаляю ScanProzorro_F , если она существует Код: vbnet 1.
потому, как данные копируются в чистую таблицу без дублей и еще Код: vbnet 1.
- думаю здесь тоже понятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2017, 21:34 |
|
Объеденить два запроса на ходу
|
|||
---|---|---|---|
#18+
Bujhm_CНо я просто "прусь" написанием кода на Vb.net даже если это касается запросов на SQL SERVER. А это один из видов мазохизма, или вы видите реальные плюсы в этом методе? Без обид и претензий просто спросил. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2017, 04:06 |
|
Объеденить два запроса на ходу
|
|||
---|---|---|---|
#18+
Bujhm_CА удаляю ScanProzorro_F , если она существует Код: vbnet 1.
Да, только при удалении схема таблицы не указана. Т.к. проверяется наличие dbo.ScanProzorro_F, а удаляется просто ScanProzorro_F, то в общем случае это могут быть 2 разные таблицы. Ну, и раз уж пошла такая пьянка - до кучи: 1. Конкатенировать имя объекта с brackets - прием неправильный: если в запросе нужны quoted identifiers - нужно использовать функцию quotename . 2. В sys.objects поле type имеет тип char(2), сравнивать его с юникодной строкой смысла не имеет. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2017, 04:56 |
|
Объеденить два запроса на ходу
|
|||
---|---|---|---|
#18+
982183Bujhm_CНо я просто "прусь" написанием кода на Vb.net даже если это касается запросов на SQL SERVER. А это один из видов мазохизма, или вы видите реальные плюсы в этом методе? Без обид и претензий просто спросил. Все запросы держу у себя в проекте а не серваке. Мне так удобно. По скорости выполнения не тестил, но на мой взгляд, выполняется достаточно быстро. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2017, 06:20 |
|
Объеденить два запроса на ходу
|
|||
---|---|---|---|
#18+
Bujhm_CРолг Хупин, авторпочему в общем случае вы проверяете существование одной таблицы, а удаляете другую? "IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[" + "ScanProzorro_F" + "]') AND type in (N'U')) BEGIN Drop Table " + "ScanProzorro_F" + " END " + _ Тут все верно. Данные из таблицы ScanProzorro копируются в ScanProzorro_F. потому предварительно проверяю существование первичной ScanProzorro Код: vbnet 1.
А удаляю ScanProzorro_F , если она существует Код: vbnet 1.
потому, как данные копируются в чистую таблицу без дублей и еще Код: vbnet 1.
- думаю здесь тоже понятно. Не верно, и вам уже выше написали почему. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2017, 09:23 |
|
Объеденить два запроса на ходу
|
|||
---|---|---|---|
#18+
Господа, вы уходите от темы! Задача изначально была поставлена как из одной таблицы (табл1) скопировать данные в другую (табл2) ,чтобы во второй (табл2) не было дублирующих записей по критерию! Если, я непонятно заявил об этом вначале, что ж, пардон. Код, который и я привел (прошу заметить и исправил сам) работает на ура! А все потуги обвинить меня в неверном его написании, по моему мнению надуманы. Ну пропустил я dbo при Drop - спасибо, заметили. Но задача другая!!! Всего хорошего! ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2017, 11:18 |
|
Объеденить два запроса на ходу
|
|||
---|---|---|---|
#18+
Bujhm_CЗадача изначально была поставлена как из одной таблицы (табл1) скопировать данные в другую (табл2) ,чтобы во второй (табл2) не было дублирующих записей по критерию! По-моему, написать Код: sql 1. 2.
Я не говорю, что надо вынести это в хранимую процедуру, просмотреть Execution plan, подобрать индексы. Но просто написать-то даже новичок сможет, разве нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2017, 13:43 |
|
Объеденить два запроса на ходу
|
|||
---|---|---|---|
#18+
13th, ему это было сразу предложено ) но видимо там работают по принципу "хуяк, хуяк, в продакшн" ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2017, 13:52 |
|
Объеденить два запроса на ходу
|
|||
---|---|---|---|
#18+
Bujhm_CВсе запросы держу у себя в проекте а не серваке. Мне так удобно. По скорости выполнения не тестил, но на мой взгляд, выполняется достаточно быстро. Надо сказать, что вопрос, вообще-то не в тему форума, это вопрос чисто по T-SQL-у. Соответствующий раздел на форуме есть. А то, что автор опубликовал тему не там, где надо, а там, куда привык - "Мне так удобно" (с). Не проявил вежливость, выбрав бы SQL из VB-текста - "Мне так удобно" (с). Ну и как школьник - сразу в обидки кидаться, что не все сразу бросились тебе помогать - "Мне так удобно" (с). Ну если тебе удобно писать как дилетант, на костылях и наотъебись - это твоё личное дело. Но эту философию не все тут разделяют. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2017, 16:30 |
|
Объеденить два запроса на ходу
|
|||
---|---|---|---|
#18+
Roman Mejtes13th, ему это было сразу предложено ) но видимо там работают по принципу "хуяк, хуяк, в продакшн" "бэйсик, бэйсик и в продакшн" ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2017, 17:22 |
|
Объеденить два запроса на ходу
|
|||
---|---|---|---|
#18+
"Лучше промолчать и показаться дураком, чем что то сказать и окончательно развеять все сомнения" ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2017, 18:36 |
|
|
start [/forum/topic.php?fid=20&fpage=40&tid=1399727]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 152ms |
0 / 0 |