和这个问题差不多。
但我似乎无法让它与 Visual Studio 2008 中的 SQL Server Express 一起使用。
相同的表布局,具有标识和主键的一列。
INSERT INTO dbo.TableWithOnlyIdentity DEFAULT VALUES
这在我的情况下工作得很好。您如何尝试将这些行放入数据库?SQL Server 管理工作室?来自 .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();
}
}
Seems to be a limitation of VS - don't use VS for serious DB work :-) Marc
Instead of trying to rely on some syntax about "DEFAULT VALUES" as the keyword, let the engine help you with that... How about explicitly trying to set ONE of the values, such as
insert into YourTable ( PickOneField ) values ( "whatever" )
So, even though you are only preping ONE field, the new record by the native engine SHOULD populate the REST of them with their respective default values.