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