2012-01-04 5 views
1

Как использовать insert into ... where (..) в SQL Server ce?SQL-запрос не работает в SQL Server Compact Edition

Этот запрос:

insert into table(field) values(@val) 
where not exists (select field from table where field = @code); 

возвращает

Был ошибка разбора запроса. [Номер линии токена = 1, смещение линии токена = 40, токен по ошибке = где]

Как я исправить это? Заранее спасибо

+2

Попробуйте 'INSERT INTO ... SELECT ... WHERE (...)' –

+0

@ todda.speot.is: Это допустимый синтаксис, но в конечном итоге повторяя вставку для каждой строки таблицы, которая соответствует запросу. –

+0

@competent_tech Если SQL CE не отличается (я знаю, что он находится в местах), то исключение из предложения 'FROM' предотвращает этот сценарий. –

ответ

2

Вам нужно будет сделать это старомодно: выберите интересующую запись из базы данных и, если она не существует, выполните вставку.

Here's a link к соответствующей документации MSDN.

1

Я уверен, что ваша проблема - это «НЕ СУЩЕСТВУЕТ», поскольку SQL CE просто не поддерживает это. Вот ссылка на аналогичный вопрос, который может помочь: “If not exists” fails on SQL CE

Смежные вопросы