如何只用一个IDENTITY列插入表(SQL Express)

时间:2009-09-01 12:11:13

标签: sql visual-studio tsql sql-server-express identity

this问题几乎相同。

但我似乎无法在Visual Studio 2008中使用SQL Server Express。

相同的表格布局,一列带有标识和主键。

2 个答案:

答案 0 :(得分:37)

 INSERT INTO dbo.TableWithOnlyIdentity DEFAULT VALUES

在我的情况下这很好用。你是如何尝试将这些行放入数据库的? SQL Server Mgmt Studio? .NET应用程序的SQL查询?

在“新查询”窗口中运行Visual Studio,我得到:

  

DEFAULT VALUES SQL构造或   声明不受支持。

==>好的,所以Visual Studio无法处理它 - 这不是SQL Server的错,而是Visual Studio的错误。使用真正的SQL Management Studio - 它在那里工作得很好!

使用ADO.NET也像魅力一样:

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();
    }
}   

似乎是VS的限制 - 不要使用VS进行严肃的数据库工作:-) 马克

答案 1 :(得分:-3)

不要试图依赖关于“DEFAULT VALUES”的一些语法作为关键字,让引擎帮助你......如何明确地尝试设置其中一个值,例如

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

所以,即使你只是在预备一个字段,本机引擎的新记录应该用它们各自的默认值填充它们的REST。