Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Добавление числа в таблицу  [new]
defragmentator
Member

Откуда:
Сообщений: 20504
Добрый день!
Как покороче написать операцию : если ключ есть в таблице, добавляем фикс. число к соотв. счётчику в таблице, иначе добаляем запись с ключом и начальным значением счётчика.

Так как-то длинно

		
IF EXISTS(SELECT 1 FROM #CONTRACTS WHERE idUser = @idUser_ODO)
	UPDATE #CONTRACTS SET nCount = nCount + 1 WHERE idUser = @idUser_ODO
ELSE
	INSERT #CONTRACTS VALUES (@idUser_ODO, 1);
20 апр 16, 18:18    [19084657]     Ответить | Цитировать Сообщить модератору
 Re: Добавление числа в таблицу  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20581
https://msdn.microsoft.com/en-us/library/bb510625(v=sql.105).aspx
20 апр 16, 18:35    [19084741]     Ответить | Цитировать Сообщить модератору
 Re: Добавление числа в таблицу  [new]
defragmentator
Member

Откуда:
Сообщений: 20504
Akina
https://msdn.microsoft.com/en-us/library/bb510625(v=sql.105).aspx


Это то же самое фактически.
Если есть, делай UPDATE
Если нету, INSERT

И всё это каждый раз указывать
20 апр 16, 18:59    [19084805]     Ответить | Цитировать Сообщить модератору
 Re: Добавление числа в таблицу  [new]
Glory
Member

Откуда:
Сообщений: 104760
defragmentator
И всё это каждый раз указывать

А вы хотели, чтобы сервер сам за вас определил изменяить ли ему запись или добвалять новую ?
20 апр 16, 19:02    [19084817]     Ответить | Цитировать Сообщить модератору
 Re: Добавление числа в таблицу  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20581
defragmentator
Это то же самое фактически.
Если есть, делай UPDATE
Если нету, INSERT

MERGE - это запрос, тогда как IF EXISTS - это фрагмент процедуры.
20 апр 16, 19:17    [19084881]     Ответить | Цитировать Сообщить модератору
 Re: Добавление числа в таблицу  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 27857
defragmentator
Добрый день!
Как покороче написать...

Вот на одну строку короче:
UPDATE #CONTRACTS SET nCount = nCount + 1 WHERE idUser = @idUser_ODO
IF @@ROWCOUNT = 0
  INSERT #CONTRACTS VALUES (@idUser_ODO, 1)
21 апр 16, 08:51    [19086147]     Ответить | Цитировать Сообщить модератору
 Re: Добавление числа в таблицу  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
Еще одна строка долой :)

UPDATE #CONTRACTS SET nCount += 1 WHERE idUser = @idUser_ODO
INSERT #CONTRACTS SELECT @idUser_ODO, 1 WHERE @@ROWCOUNT = 0
21 апр 16, 08:53    [19086162]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить