SQL-запрос для этого случая? - PullRequest
0 голосов
/ 20 ноября 2010

Существует таблица Employee, имеющая employee_id и employee_name

Я хочу вставить "Джеймс" в эту таблицу.
Если в таблице Employee уже есть одна запись "james", я хочу, чтобы его employee_id был возвращен
если таблица содержит более одной записи «james» (дубликаты), ничего не делайте и пропускайте
если нет «james», я хочу вставить «james», и будет возвращен новый employee_id

Ребята, как мне написать запрос для этого.

ОБНОВЛЕНИЕ: ответ на другой мой вопрос решил проблему. Спасибо всем за руководство,

Ответы [ 3 ]

0 голосов
/ 20 ноября 2010

Я думаю, что заявление MERGE - это то, что вы ищете.

0 голосов
/ 20 ноября 2010

Если разрешено использовать функцию @@ Rowcount:

DECLARE @EmployeeId int

SELECT TOP 2 @EmployeeId = employee_id 
FROM @Employee
WHERE employee_name = 'james'

IF @@Rowcount > 1
BEGIN
    PRINT 'Many matching rows found'
    RETURN;
END

IF @EmployeeId IS NULL
    -- INSERT ...
ELSE
    -- RETURN @EmployeeId
0 голосов
/ 20 ноября 2010

Вам нужно написать хранимую процедуру для этого.Вы знакомы с ними?Кроме того, вы можете запросить базу данных несколько раз с вашего сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...