2010-12-07 11 views
8

Acabo de intentar insertar valor en una base de datos y eso funciona. Ahora vuelvo a insertar y obtengo un error para la clave primaria idéntica.No se puede establecer el auto-incremento a través de SQL Server Express Management Studio?

No puedo encontrar ninguna opción para modificarlo para que sea automático.

Estoy actualizando la tabla a través de Linq-To-Sql.

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

Yo no lo complete en el user_id y funcionó bien la primera vez. Se convirtió en cero. Intentando agregar un segundo usuario, quiere hacer el ID 0 nuevamente.

Pude consultar la base de datos y solicitar la identificación más alta, pero eso va muy lejos si sabe acerca de auto-incremento.

¿Cómo puedo activar esto? Todo lo que puedo encontrar son scripts para la creación de tablas. Me gustaría mantener mi tabla existente y simplemente editarla.

Respuesta

20

¿Cómo se define su modelo Linq-to-SQL? Compruebe las propiedades de la columna user_id, ¿en qué están configuradas?

alt text

En su modelo LINQ a SQL, asegúrese de tener Auto Generated Value define como true, Auto-Sync conjunto de OnInsert, y el tipo de datos del servidor también debe coincidir con la configuración (INT IDENTITY),

En SQL Server Management Studio, debe definir la columna user_id para que sea del tipo INT IDENTITY - en el diseñador visual de tablas, debe establecer esta propiedad aquí:

alt text

+0

Gracias, esto lo hizo. – KdgDev

1

Es cero porque tiene un número entero para un tipo de columna de clave principal. Para usar el autoincremento, establezca la columna de identidad de las tablas en la ID (seleccionada en las propiedades de la tabla)

0

o se puede incrementar el user_id manualmente y pasarlo a la función de inserción si no puede afectar a la designación campo de la propiedad/table

Cuestiones relacionadas