尝试在C#中插入时Scope_Identity出错

时间:2017-04-03 15:05:28

标签: c# visual-studio-2015

 string cmdTrainText = "INSERT INTO dbo.Event_Train(SCOPE_IDENTITY(), Train," + 
                                "Barrel_Train, Fire_Truck, Tram, Beverage_Cart) " + 
                        "VALUES(cbTrain, cbTBarrelTrain, cbTFire_Truck, cbTram, " +
                               "cbTBeverage_Cart)";

我收到以下错误

  

System.DataSqlClient.SqlException {"'附近的语法不正确('。"}

一切都编好了。运行程序时出现此错误。 我正在使用Visual Studio 2015。 我正在努力学习C#

我是否需要在SCOPE_IDENTITY()附近放一些东西?

2 个答案:

答案 0 :(得分:0)

ScopeIdentity应该是VALUES括号内的第一个元素,然后你必须在第一个括号中写下列名!在这种情况下,ScopeIdentity似乎是值,而不是我的列名。

编辑看起来像这样(建议的列名ScopeID):

string cmdTrainText = "INSERT INTO dbo.Event_Train(ScopeID, Train," + 
                              "Barrel_Train, Fire_Truck, Tram, Beverage_Cart) " + 
                      "VALUES(SCOPE_IDENTITY(), cbTrain, cbTBarrelTrain, cbTFire_Truck, " +
                              "cbTram, cbTBeverage_Cart)";

答案 1 :(得分:0)

您不能拥有不同数量的值与字段数量;你有6个字段,只有5个值。此外,如果您有一个IDENTITY字段,db将自动增加它而不指定它的值。 SCOPE_IDENTITY是一个返回值,用于提供数据库为插入和操作范围生成的最后一个IDENTITY值(在IDENTITY vs. SCOPE_IDENTITY上阅读)。