Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > Проверка на существование одинаковых записей


Автор: vinograd2008 31.3.2010, 20:49
Здравствуйте подскажите пожалуйста как проверить существует ли одинаковая запись в БД MSSQL?
Например, если значение поля ID_menedgera совпадает с введеным в текстовое поле значением, то добавление записи не происходит. 
Как сделать такую проверку?

Автор: azesmcar 31.3.2010, 20:59
установить уникальный индекс или первичный ключ на поле в базе данных.

Автор: EagleOne 31.3.2010, 21:12
Если вопрос правильно понял, то можно так:

Код

insert TableName(
     Id
     , ... )
select
     adding_manager.ManagerId
     , ... - остальные поля, если они есть
from
      (select
            @id_manager ManagerId
            , ... ) adding_manager
            left join TableName table_name
                 on table_name.Id = adding_manager.ManagerId
where
      table_name.Id is null 


Уникальный ключ на поле ИД манагера, конечно не помешает... 
Старнно, что ИД вообще вводится из какого-то текстового поля, а не автоинкриментируемый например... 

Автор: jonie 4.4.2010, 16:24
EagleOne, вместо left join лучше использовать exists в приведенном тобой запросе, быстрее работает на mssql....

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)