代码之家  ›  专栏  ›  技术社区  ›  Anders

将记录插入到具有标识列的表中的SQL语句?

  •  1
  • Anders  · 技术社区  · 17 年前

    我正在尝试将一行手动插入到SQL Server数据表中。此表有5列、一个标识和四个数据列。我看着 this post ,但当我运行所选答案的查询时(当然是在将“GroupTable”替换为我的表名之后),我的SQL Server 2005 management studio崩溃。

    INSERT INTO MyTable (id, col1, col2, col3, col4)
    VALUES (0, 'Column 1 Value', 'Column 2 Value', 'Column 3 Value', 'Column 4 Value')
    
    INSERT INTO MyTable (col1, col2, col3, col4)
    VALUES ('Column 1 Value', 'Column 2 Value', 'Column 3 Value', 'Column 4 Value')
    

    4 回复  |  直到 9 年前
        1
  •  7
  •   Pierre-Alain Vigeant    17 年前

    通常,如果该列设置为自动id,则省略id列将生成一个新的自动id。在您的情况下,您可以使用

    SET IDENTITY_INSERT MyTable ON;
    
    INSERT INTO MyTable (id, col1, col2, col3, col4)
    VALUES (4567, 'Value1', 'Value2', 'Value3', 'Value4');
    
    SET IDENTITY_INSERT MyTable OFF;
    
        2
  •  1
  •   Beska    17 年前

    正如其他一些人所说,我认为第二个应该适合您,但是如果您在运行查询时破坏了management studio,无论它是否损坏,您的问题都比错误的sql查询更大。

    工作室不应该崩溃,即使你写了一些非常糟糕的sql…它应该给你一个错误消息,然后继续。如果这些类型的错误对您来说是常见的,您可能会考虑重新安装Management Studio。

        3
  •  0
  •   ennuikiller    17 年前

    我第一次听说mysql有一个SQL 2005管理客户机,但是在任何情况下,您是否尝试过从命令行直接登录到数据库并从那里执行insert语句?

        4
  •  0
  •   Ken    17 年前

    不确定您所说的“崩溃”是什么意思,但是,如果您在表中正确设置了标识规范,那么第二个语句应该可以工作。右键单击Management studio中的表,并查看id列的属性。isIdentity应为“是”,标识增量应为1。

    推荐文章