У меня есть команда:
INSERT INTO tbl_media
(DateAdded) VALUES (GetDate())
SELECT CAST(@@Identity AS int)
Он отлично работает против стандартной базы данных sql, но не против базы данных CE. Я получаю следующую ошибку:
Ошибка выполнения SQL.
Executed SQL statement...
Error Source: SQL Server Compact ADO.NET Data Provider
Error Message: There was an error parsing the query. [Token line number = 2, Token line offset = 31, Token in error = )]
Позор, ошибка не более полезна, кто-нибудь знает, что может происходить?
Приветствия
ОБНОВЛЕНИЕ ::::::
После долгих раздумийвозиться с визуальным редактором студии (мусор) Я скачал порт данных и прочитал MSDN.Кажется, есть 2 проблемы ...
1) Недопустимый SELECT CAST (@@ Identity AS int) sql
SELECT @@ Identity *
2) SqlCeсерверу не нравится, когда я соединяю эти две команды:
INSERT INTO tbl_media (DateAdded) VALUES (getdate ()) SELECT @@ Identity
Если я выполняю вставку и выбираю по-разномураз тогда это работает.Так как мне обойти это?Я не могу сделать это в разное время. Мне нужно знать идентификатор объектов при их создании !!!
ОБНОВЛЕНИЕ 2:
Согласно очень полезному Эрику Э, вы не можете сделать 2 утвержденияв то же время.Поэтому следующие синтаксические разборы являются правильными, но работать не будут:
INSERT INTO tbl_media (DateAdded) VALUES (getdate ());SELECT @@ Identity;
Так что я действительно хочу знать, как я могу гарантировать, что идентичности не будут смешиваться при добавлении записей?
Т.е. что, если кто-то создает запись, пока кто-то получаетличность для одного они только что вставили?