无法通过 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 设置自动增量?的主要内容,如果未能解决你的问题,请参考以下文章

无法从 Web 服务器连接到 SQL Server Express

SQL Server Express 连接到 .mdf 文件

无法安装 SQL Server 2008 R2 Express

无法连接到 SQL Server 2008 Express 实例

SQL Server 2008 Express 无法附加 mdf 文件

Microsoft SQL Server 2014 Express 服务无法启动