【问题标题】:Can't set auto-increment via SQL Server Express Management Studio?无法通过 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,但如果您知道自动增量,那就太远了。

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

【问题讨论】:

    标签: sql-server primary-key auto-increment


    【解决方案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 并将其传递给插入函数

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-11-05
            • 2014-03-16
            • 2012-02-03
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多