SQL INSERT查询中的自动递增?

时间:2011-10-17 20:24:49

标签: sql vb.net sql-server-ce increment

我连接到SQL Server Compact Edition数据库。其中一个表有3列 - CompanyID,CompanyName和CompanyNotes。我在Visual Basic中创建了一个表单,将新公司添加到数据库中,当然我不希望用户必须手动输入公司ID。

在dataset.xsd中,我创建了一个INSERT SQL查询,只需插入一个包含CompanyID,CompanyName和CompanyNotes的新行。我已将CompanyID设置为自动增量。但是,当我尝试插入名称和注释时,它不喜欢它,因为我将ID字段设置为必需。如何将新公司数据插入具有新ID的新行?

我目前用于添加新公司的基本代码:

Private Sub btnSave_Click(sender As System.Object, e As System.EventArgs) Handles btnSave.Click
    Me.CompanyTableAdapter1.AddCompany(??????????, txtCompanyName.Text, txtCompanyNotes.Text)
    Me.Close()
End Sub

我应该把什么代替'?????',或者我应该做一些完全不同的事情?

谢谢!

2 个答案:

答案 0 :(得分:3)

只需省略SQL查询中的ID字段即可。

INSERT INTO company (CompanyName, CompanyNotes) VALUES (?, ?)

然后可以通过删除ID参数来简化您的方法:

Me.CompanyTableAdapter1.AddCompany(txtCompanyName.Text, txtCompanyNotes.Text)

答案 1 :(得分:0)

这应该在数据库级别使用自动递增标识规范来完成:

ALTER TABLE TableName ALTER COLUMN ColumnName IDENTITY (/*seed*/1, /*increment*/1)

一旦标识列就位,您可以在插入期间省略标识列,因为它将在插入时自动分配。