插入行并获取ID,获取错误

时间:2011-12-04 18:30:49

标签: c# insert sql-server-ce identity

我插入一个值/新行,我需要ID,但是我收到错误...

SQL代码:

INSERT INTO [StoneTable] ([StoneName]) VALUES (@StoneName)
SELECT SCOPE_IDENTITY()

使用此代码插入行并获取ID:

stoneTableTableAdapter = new StoneTableTabelleTableAdapter();
int id = Convert.ToInt32(stoneTableTableAdapter.InsertStoneNameAndReturnId("anything"));
//And on this 2nd Line I got an error

错误讯息:

  

解析查询时出错。 [令牌行号= 2,令牌行偏移= 1,令牌错误=选择]

有什么问题?在我的其他项目中,我使用相同的语法,没有任何问题。试过@@IDENTITY,也没有工作......

2 个答案:

答案 0 :(得分:1)

请参阅this question的答案,了解如何使您的示例正常工作:

  

您应该更改INSERT以立即返回插入的ID(在OUTPUT子句中)

答案 1 :(得分:0)

您只能在SQL Server Compact中为每个批处理发出一个语句,并且您不能使用Scope_identity,但必须使用@@ IDENTITY(记住在两次调用之间保持连接打开)