我正在尝试在 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 命令的文档链接,我将不胜感激。
谢谢
最佳答案
使用默认值适用于标准 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())
关于t-sql - 如何插入只有一个 IDENTITY 列的表 (SQL Server CE),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2558646/