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

Откуда:
Сообщений: 319
Всем доброго дня.

Есть заполненная временная таблица #TempTable, в ней есть поля Code и Account.

Мне нужно внести данные из временной таблицы #TempTable в постоянную таблицу IAccount, но только если во временной таблице TempTable поля Code и Account не пустые.

Пример:
IF поля Code и Account = не пусто Then
INSERT IAccount (Code,Account)

Как это сделать ?
Простите за такой простой вопрос )
27 июн 14, 12:12    [16228241]     Ответить | Цитировать Сообщить модератору
 Re: Проверка запроса на пустые значения перед вставкой  [new]
pio777
Member

Откуда:
Сообщений: 127
Что для вас пустые?
Если NULL:

INSERT IAccount (Code, Account)
SELECT Code,Account FROM #TempTable
WHERE Code IS NOT NULL AND Account IS NOT NULL
27 июн 14, 12:19    [16228273]     Ответить | Цитировать Сообщить модератору
 Re: Проверка запроса на пустые значения перед вставкой  [new]
Aleks_Aleks
Member

Откуда:
Сообщений: 319
pio777,

Да, пустое значение это NULL.

И еще такой момент, вставку в таблицу IAccount нужно делать, только тогда, когда в таблице IAccount вставляемых значений нет, если в таблице IAccount уже есть эти данные то вставлять еще раз их не нужно.
27 июн 14, 12:26    [16228313]     Ответить | Цитировать Сообщить модератору
 Re: Проверка запроса на пустые значения перед вставкой  [new]
pio777
Member

Откуда:
Сообщений: 127
Добавте в WHERE AND NOT EXISTS....
27 июн 14, 12:39    [16228410]     Ответить | Цитировать Сообщить модератору
 Re: Проверка запроса на пустые значения перед вставкой  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8807
Создайте поля в целевой таблице типа NOT NULL.
27 июн 14, 12:40    [16228418]     Ответить | Цитировать Сообщить модератору
 Re: Проверка запроса на пустые значения перед вставкой  [new]
Aleks_Aleks
Member

Откуда:
Сообщений: 319
а так будет правильно ?

INSERT INTO IAccount (Account,Code) SELECT DISTINCT N.Account,N.Code
		FROM IAccount I RIGHT OUTER JOIN #TempData N ON (N.Account=I.Account AND N.Code=I.Code) 
		WHERE I.CompanyId IS NULL AND N.Account IS NOT NULL AND N.Code IS NOT NULL
27 июн 14, 12:45    [16228446]     Ответить | Цитировать Сообщить модератору
 Re: Проверка запроса на пустые значения перед вставкой  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8807
Aleks_Aleks, это будет фильтр, а не то, что Вы написали в названии темы.
27 июн 14, 13:01    [16228572]     Ответить | Цитировать Сообщить модератору
 Re: Проверка запроса на пустые значения перед вставкой  [new]
Aleks_Aleks
Member

Откуда:
Сообщений: 319
Владислав Колосов,

Виноват, не владею терминологией)

Такой фильтр, как в примере будет работать правильно ?
27 июн 14, 13:20    [16228720]     Ответить | Цитировать Сообщить модератору
 Re: Проверка запроса на пустые значения перед вставкой  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8807
Похоже на правду.
27 июн 14, 13:30    [16228801]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить