una tabla off modificar insertar identity_insert existente ejemplo datos con columna campo cambiar autoincrementable auto_increment agregar sql visual-studio tsql sql-server-express identity

tabla - modificar columna auto_increment sql server



Cómo insertar en una tabla con una sola columna IDENTIDAD(SQL Express) (2)

Más o menos lo mismo que this pregunta.

Pero parece que no consigo que esto funcione con SQL Server Express en Visual Studio 2008.

El mismo diseño de tabla, una columna con identidad y clave principal.


En lugar de intentar confiar en alguna sintaxis sobre "VALORES POR DEFECTO" como palabra clave, deje que el motor lo ayude con eso ... ¿Qué le parece intentar explícitamente UNO de los valores, como

insert into YourTable ( PickOneField ) values ( "whatever" )

Por lo tanto, aunque solo esté preparando UN campo, el nuevo registro del motor nativo DEBE rellenar el RESTO de ellos con sus respectivos valores predeterminados.


INSERT INTO dbo.TableWithOnlyIdentity DEFAULT VALUES

Esto funciona bien en mi caso. ¿Cómo estás tratando de obtener esas filas en la base de datos? ¿SQL Server Mgmt Studio? ¿Consulta SQL desde la aplicación .NET?

Ejecutando dentro de Visual Studio en la ventana "Nueva consulta", obtengo:

La construcción o la declaración de VALORES POR DEFECTO no es compatible.

==> Bien, entonces Visual Studio no puede manejarlo, eso no es culpa de SQL Server, sino de Visual Studio. Utilice el verdadero SQL Management Studio en su lugar, ¡funciona bien allí!

Usar ADO.NET también funciona como un encanto:

using(SqlConnection _con = new SqlConnection("server=(local); database=test;integrated security=SSPI;")) { using(SqlCommand _cmd = new SqlCommand ("INSERT INTO dbo.TableWithOnlyIdentity DEFAULT VALUES", _con)) { _con.Open(); _cmd.ExecuteNonQuery(); _con.Close(); } }

Parece ser una limitación de VS - no use VS para trabajo serio de DB :-) Marc