如何只用一个IDENTITY列插入表(SQL Server CE)

时间:2010-04-01 06:59:12

标签: tsql sql-server-ce

我正在尝试在SQL Server CE 3.5中的一个IDENTITY列表中插入一个值。我尝试了以下内容:

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 server CE的有效sql命令的文档。

谢谢

1 个答案:

答案 0 :(得分:4)

使用默认值适用于标准版本的SQL上的标识列。我看不出为什么它不适用于CE。

在你的情况下,你会做这样的事情:

Insert Into Target
Default Values

编辑:

此问题看起来特定于SQL CE。

我可以建议的另一件事是在表中添加另一列,例如DateInserted。

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

然后应该插入一个新行,从而生成一个新的ID。

如果您可以更改表格结构,那么您可以改为使用UniqueIdentifier。

Create Table Target
(
IDColumn uniqueidentifier not null
)

Insert Into Target
Values (newId())