【问题标题】:How to insert into a table with just one IDENTITY column (SQL Express)如何插入只有一个 IDENTITY 列的表(SQL Express)
【发布时间】:2010-11-24 15:09:23
【问题描述】:

this的问题差不多。

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

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

【问题讨论】:

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


    【解决方案1】:
     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 用于严肃的数据库工作 :-) 马克

    【讨论】:

    • 尝试从视觉工作室设计器(查询)运行它。收到错误消息。现在不记得确切的文字了。
    • 谢谢,这在应用程序中就像一个魅力。不能相信 VS 可以做所有事情......显然。
    【解决方案2】:

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

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

    因此,即使您只准备一个字段,本地引擎的新记录也应该使用它们各自的默认值填充它们的 REST。

    【讨论】:

    • 表只有1列,就是身份。
    猜你喜欢
    • 1970-01-01
    • 2023-03-22
    • 2014-02-17
    • 2019-11-12
    • 2011-04-17
    • 2011-05-06
    • 2021-11-16
    • 2021-12-14
    相关资源
    最近更新 更多