Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
5 / 5 / 2
Регистрация: 25.10.2015
Сообщений: 236

Проверка в SQL

22.01.2016, 12:05. Показов 1957. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите как сделать проверку на то, что если такая запись есть то не добавлять а если нету записи то добавлять.

Знаю только что через not exist можно.

SQL
1
2
3
4
5
INSERT INTO EstimateWorkgroups
    SELECT [EstimateID],132001,31,[STATUS],[Author],[ROLE],0,[RatingCl],[RatingPr],[RatingRe],[Rating],[bonus],[Version],[Received]
    FROM EstimateWorkgroups E1  
    --WHERE E1.ActorID = 5980000
    WHERE E1.ActorID = 6432000
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.01.2016, 12:05
Ответы с готовыми решениями:

Проверка SQL запроса
Люди понимающие в PHP скажите как реализовать программу которая проверяет введенный запрос сравнивает его и выводит ответ: правильно или...

проверка на sql-ijection
пытаюсь написать скрипт на проверку sql-injection поскольку есть несколько функций которые по своему алгоритму проверяют разны...

Проверка SQL-таблиц
Добрый день всем. Мне нужно доработать проверку таблиц. Задача собственно такова. Я получаю список всех пользовательских таблиц. после...

3
Эксперт Pascal/Delphi
 Аватар для xxbesoxx
1135 / 616 / 129
Регистрация: 13.02.2009
Сообщений: 3,600
22.01.2016, 12:18
Цитата Сообщение от Пабл0 Посмотреть сообщение
что если такая запись есть то не добавлять а если нету записи то добавлять.
1) MERGE https://technet.microsoft.com/... 05%29.aspx
2) NOT EXISTS https://msdn.microsoft.com/en-... 10625.aspx
1
5 / 5 / 2
Регистрация: 25.10.2015
Сообщений: 236
22.01.2016, 13:05  [ТС]
xxbesoxx,
SQL
1
2
3
4
5
6
7
8
9
INSERT INTO EstimateWorkgroups
    SELECT [EstimateID],132001,31,[STATUS],[Author],[ROLE],0,[RatingCl],[RatingPr],[RatingRe],[Rating],[bonus],[Version],[Received]
    FROM EstimateWorkgroups E1  
    WHERE E1.ActorID = 6432000 AND NOT EXISTS (
        
    SELECT [EstimateID],132001,31,[STATUS],[Author],[ROLE],0,[RatingCl],[RatingPr],[RatingRe],[Rating],[bonus],[Version],[Received]
    FROM EstimateWorkgroups E1  
    WHERE E1.ActorID = 6432000
    )
Вот так?
0
Эксперт Pascal/Delphi
 Аватар для xxbesoxx
1135 / 616 / 129
Регистрация: 13.02.2009
Сообщений: 3,600
22.01.2016, 13:33
Лучший ответ Сообщение было отмечено Пабл0 как решение

Решение

Цитата Сообщение от Пабл0 Посмотреть сообщение
Вот так?
Я не знаю ваши структура таблицы , Магу показать пример , "проанализируйте" и реализуйте такой конструкция
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
-- 1 заменить merge
create table Tab1
(
 id int identity(1,1),
 name nvarchar(30) not null,
 price money
);
 
----------------------------------
insert into Tab1(name, price) values(N'Чай',50),
                                    (N'Кофе',60),
                                    (N'Сахар',45)
select * from Tab1
-----------------------------------
create table Tab2
(
 id int not null, -- !!! Важно что не било identity(1,1)
 name nvarchar(30) not null,
 price money
);
--------Копируем данных из Tab1  в таблице Tab2 только те запись который есть Tab1 и нету Tab2 -------------
INSERT Tab2 (id, name, price)
SELECT id, name, price 
FROM Tab1 
WHERE NOT EXISTS (SELECT name, price  FROM Tab2  
                  WHERE Tab1.id = Tab2.id
                  AND Tab1.name=Tab2.name
                  AND Tab1.price=Tab2.price );
                  
------------------Добавляем еще данных в таблицу Tab1  и проверяем потом это запрос---------------------------
 
insert into Tab1(name, price) values(N'Пива',55)
 
-----------------проверяем еще все работает добавляется только это запис который мы добавили сейчас------------
 
INSERT Tab2 (id, name, price)
SELECT id, name, price 
FROM Tab1 
WHERE NOT EXISTS (SELECT name, price  FROM Tab2  
                  WHERE Tab1.id = Tab2.id
                  AND Tab1.name=Tab2.name
                  AND Tab1.price=Tab2.price );
 
---Сеичас еще проверим ! удалим все данных Tab2 и заного выполняем эту условия 
select * from Tab2
delete from Tab2
------INSERT ---проверяем еще наши запрос ! Замечание после where надо AND что условия не стаял только это Tab1.id = Tab2.id  --------------
INSERT Tab2 (id, name, price)
SELECT id, name, price 
FROM Tab1 
WHERE NOT EXISTS (SELECT id, name, price  FROM Tab2  
                  WHERE Tab1.id = Tab2.id
                  AND Tab1.name=Tab2.name
                  AND Tab1.price=Tab2.price );
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.01.2016, 13:33
Помогаю со студенческими работами здесь

Проверка Sql запроса
Добрый день! Незнает ли кто нибудь случаем как лучше проверить синтаксис sql запроса в LotusScript агенте перед выполнением?...

Проверка синтаксиса SQL
Ребята, привет. Начал изучать SQl, соответственно спросить совета не у кого, вынужден спрашивать здесь ) При выполнении данного...

sql построчная проверка
Ребят помогите пожалуйста уже не знаю что делать! Есть у меня табличка mssql!я ввожу допустим в textbox какой либо ответ ,как мне...

Проверка выбора БД SQL
Народ помогите пожалуйста решить следующую проблему: Имеется программа и БД SLQ 2008. При начальном запуске программы происходит поиск...

Проверка на sql injection
Всем привет! подскажите пожалуйста, на каком софте можно проверит приложение на sql инъекцию? З.Ы. нашел много чего вот только в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru