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

发布于 2024-08-04 02:29:14 字数 222 浏览 4 评论 0原文

这个几乎相同问题。

但我似乎无法让它与 Visual Studio 2008 中的 SQL Server Express 一起使用。

相同的表布局,一列包含标识和主键。

Pretty much the same as this question.

But I can't seem to get this to work with SQL Server Express in Visual Studio 2008.

Same Table layout, One column with identity and primary key.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

少跟Wǒ拽 2024-08-11 02:29:14
 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();
    }
}   

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

 INSERT INTO dbo.TableWithOnlyIdentity DEFAULT VALUES

This works just fine in my case. How are you trying to get those rows into the database? SQL Server Mgmt Studio? SQL query from .NET app?

Running inside Visual Studio in the "New Query" window, I get:

The DEFAULT VALUES SQL construct or
statement is not supported.

==> OK, so Visual Studio can't handle it - that's not the fault of SQL Server, but of Visual Studio. Use the real SQL Management Studio instead - it works just fine there!

Using ADO.NET also works like a charm:

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

东风软 2024-08-11 02:29:14

与其尝试依赖有关“DEFAULT VALUES”的某些语法作为关键字,不如让引擎帮助您...不如显式尝试设置其中一个值(例如

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

So),即使您只准备一个字段,本机引擎的新记录应该用它们各自的默认值填充它们的其余部分。

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文