无法通过 SQL Server Express Management Studio 设置自动增量?

Posted

技术标签:

【中文标题】无法通过 SQL Server Express Management Studio 设置自动增量?【英文标题】:Can't set auto-increment via SQL Server Express Management Studio? 【发布时间】:2011-05-21 17:23:03 【问题描述】:

我刚刚尝试将值插入数据库并且工作正常。现在我再次插入,我得到一个相同主键的错误。

我找不到将其更改为自动增量的任何选项。

我正在通过 Linq-To-Sql 更新表格。

User u = new User(email.Text, HttpContext.Current.Request.UserHostAddress,
                                        CalculateMD5Hash(password.Text));
db.Users.InsertOnSubmit(g);
db.SubmitChanges();

我没有填写user_id,它第一次运行良好。它变成了零。 尝试添加第二个用户,它想再次将 ID 设为 0。

我可以查询数据库并询问最高 ID,但如果您知道自动增量,那就太远了。

如何开启此功能?我只能找到用于创建表的脚本。我想保留现有的表格并简单地对其进行编辑。

【问题讨论】:

【参考方案1】:

您的 Linq-to-SQL 模型是如何定义的?检查user_id 列的属性 - 它们设置为什么??

在您的 Linq-to-SQL 模型中,确保将 Auto Generated Value 设置为 true,Auto-Sync 设置为 OnInsert,并且服务器数据类型也应与您的设置匹配 (INT IDENTITY),

在 SQL Server Management Studio 中,您需要将 user_id 列定义为 INT IDENTITY 类型 - 在可视表设计器中,您需要在此处设置此属性:

【讨论】:

【参考方案2】:

它为零,因为您有一个主键列类型的整数。要使用自动增量,请将表标识列设置为 ID(在表属性中选择)

【讨论】:

【参考方案3】:

如果您有一个可以使用的版本,使用 VS 编辑数据库可能会更容易,否则如果您必须在管理工作室中编辑它,请参阅这篇文章: http://blogs.msdn.com/b/sqlexpress/archive/2006/11/22/connecting-to-sql-express-user-instances-in-management-studio.aspx

【讨论】:

【参考方案4】:

或者,如果您无法更改属性/表字段描述,您可以手动增加 user_id 并将其传递给插入函数

【讨论】:

以上是关于无法通过 SQL Server Express Management Studio 设置自动增量?的主要内容,如果未能解决你的问题,请参考以下文章