Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
qwertEHOK Member Откуда: Волгоград Сообщений: 273 |
Помогите пожалуйста с запросом. Есть вот такой код. Нужно выполнить эти обновления в 1 запросе. set @CN = (select count(ObjectCode) from _TMDiscObjects where ObjectCode=999999999) if @CN = 0 insert into _TMDiscObjects (ObjectCode, ScenarioCode, isDeleted) values (999999999, 1, 0) set @CN = (select count(ObjectCode) from _TMDiscObjects where ObjectCode=999999998) if @CN = 0 insert into _TMDiscObjects (ObjectCode, ScenarioCode, isDeleted) values (999999998, 2, 0) set @CN = (select count(ObjectCode) from _TMDiscObjects where ObjectCode=999999997) if @CN = 0 insert into _TMDiscObjects (ObjectCode, ScenarioCode, isDeleted) values (999999997, 3, 0) set @CN = (select count(ObjectCode) from _TMDiscObjects where ObjectCode=999999996) if @CN = 0 insert into _TMDiscObjects (ObjectCode, ScenarioCode, isDeleted) values (999999996, 4, 0) set @CN = (select count(ObjectCode) from _TMDiscObjects where ObjectCode=999999995) if @CN = 0 insert into _TMDiscObjects (ObjectCode, ScenarioCode, isDeleted) values (999999995, 5, 0) set @CN = (select count(ObjectCode) from _TMDiscObjects where ObjectCode=999999994) if @CN = 0 insert into _TMDiscObjects (ObjectCode, ScenarioCode, isDeleted) values (999999994, 6, 0) set @CN = (select count(ObjectCode) from _TMDiscObjects where ObjectCode=999999993) if @CN = 0 insert into _TMDiscObjects (ObjectCode, ScenarioCode, isDeleted) values (999999993, 7, 0) set @CN = (select count(ObjectCode) from _TMDiscObjects where ObjectCode=999999992) if @CN = 0 insert into _TMDiscObjects (ObjectCode, ScenarioCode, isDeleted) values (999999992, 8, 0) Что сделал сам. Сделал времянку #t, аналог _TMDiscObjects Сделал времянку #t1 где лежат все 999* далее код SELECT 'insert into _TMDiscObjects (ObjectCode, ScenarioCode, isDeleted) values (',t1.ObjectCode,',', 1000000000-t1.ObjectCode,',' ,0,')' FROM #t1 AS t1 WHERE t1.ObjectCode NOT IN ( SELECT ObjectCode from #t where ObjectCode IN (999999999,999999998,999999997,999999996,999999995,999999994,999999993,999999992) GROUP BY ObjectCode ) Возвращает insert into _TMDiscObjects (ObjectCode, ScenarioCode, isDeleted) values ( 999999992 , 8 , 0 ) insert into _TMDiscObjects (ObjectCode, ScenarioCode, isDeleted) values ( 999999993 , 7 , 0 ) insert into _TMDiscObjects (ObjectCode, ScenarioCode, isDeleted) values ( 999999997 , 3 , 0 ) далее CASTом собрать строки, добавить exec, собрать строку и запустить но может есть решение лучше? |
17 янв 14, 11:45 [15428845] Ответить | Цитировать Сообщить модератору |
Ennor Tiegael Member Откуда: Сообщений: 3348 |
И сколько всего записей в таблице должно получиться - миллиард? |
17 янв 14, 11:54 [15428911] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
Сразу сделать insert into _TMDiscObjects из результатов запроса FROM #t1 AS t1 WHERE t1.ObjectCode NOT IN ( SELECT ObjectCode from #t where ObjectCode IN (999999999,999999998,999999997,999999996,999999995,999999994,999999993,999999992) GROUP BY ObjectCode ) |
||
17 янв 14, 11:58 [15428955] Ответить | Цитировать Сообщить модератору |
qwerty112
Guest |
так чтоле ?--insert into _TMDiscObjects (ObjectCode, ScenarioCode, isDeleted) select t1.ObjectCode, 10 - t1.ObjectCode % 10, 0 from t1 where not exists (select 1 from _TMDiscObjects a where a.ObjectCode=t1.ObjectCode) |
17 янв 14, 11:59 [15428958] Ответить | Цитировать Сообщить модератору |
qwertEHOK Member Откуда: Волгоград Сообщений: 273 |
неее, девяток немного, не более 10 |
17 янв 14, 11:59 [15428960] Ответить | Цитировать Сообщить модератору |
qwertEHOK Member Откуда: Волгоград Сообщений: 273 |
АААААААААААААААААААА 100% спасибо ![]() |
||
17 янв 14, 12:02 [15428995] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |