Как вставить в таблицу только один столбец IDENTITY (SQL Server CE) - PullRequest
2 голосов
/ 01 апреля 2010

Я пытаюсь вставить значение в одну таблицу столбца IDENTITY в SQL Server CE 3.5. Я попробовал следующее:

INSERT Target DEFAULT VALUES
INSERT Target (ID) VALUES (DEFAULT)
INSERT Target (ID) VALUES ()

Но ни один из них не работал. Это команда SQL, которую я использовал для создания таблицы (с помощью SQL Server Management Studio):

CREATE TABLE Target(
ID int NOT NULL IDENTITY (1, 1) PRIMARY KEY
);

Справочный сайт Microsoft (http://msdn.microsoft.com/en-us/library/ms174633%28SQL.90%29.aspx) упоминает, что значения DEFAULT недействительны для столбцов идентификаторов, однако они не упоминают никаких альтернатив.

Они упоминают что-то о uniqueidentifier и ROWGUID, но я не смог заставить его работать.

Буду признателен за любые указания о том, как решить эту проблему, или за ссылки на документацию о действующих командах sql для сервера sql CE.

Спасибо

1 Ответ

4 голосов
/ 01 апреля 2010

Использование значений по умолчанию работает для столбцов идентификаторов в стандартной версии SQL. Я не вижу причин, по которым он не будет работать на CE.

В вашем случае вы бы сделали что-то вроде этого:

Insert Into Target
Default Values

Edit:

Эта проблема выглядит так, как будто она специфична для SQL CE.

Единственное, что я могу предложить, это добавить еще один столбец в вашу таблицу, например DateInserted.

Insert Into Target (DateInserted)
Values (getdate())

Затем следует вставить новую строку, создавая новый идентификатор.

Если вы можете изменить структуру таблицы, то вместо этого вы можете использовать UniqueIdentifier.

Create Table Target
(
IDColumn uniqueidentifier not null
)

Insert Into Target
Values (newId())
...