将SQL Server行插入格式化表中的特定位置

时间:2014-02-26 09:32:58

标签: sql sql-server-2012 sql-insert corresponding-records delete-record

我是创建数据库的新手,目前正在尝试完成对我来说非常必要的事情。

假设我有一个包含300行的数据库“Customer”,并且都有一个名为Id_的唯一标识符。

Id_ | Customer | Postal | Country |
200 | Mica Sa. | 99582 | USA
201 | Shum Jr. | 10258 | USA
202 | Carl Ro. | 45697 | USA
203 | Brad Mi. | 24761 | USA

如果我使用以下方法删除第202行:

DELETE FROM Customer
WHERE Id_ = 202;

我得到:

Id_ | Customer | Postal | Country |
200 | Mica Sa. | 99582 | USA
201 | Shum Jr. | 10258 | USA
203 | Brad Mi. | 24761 | USA

但是当我尝试使用:

插入一行时
INSERT INTO Customer (Id_, Customer, Postal, Country)
VALUES (202, 'Peter R.', 08574, 'USA');

我在数据库中随机插入了行,所以我的问题是如何在201(Id_)之后和203(Id_)之前准确插入这一行?

1 个答案:

答案 0 :(得分:1)

为了帮助你清除一些事情:

  • ID字段似乎是int而不是唯一标识符
  • 插入语句不是在DB中随机生成的,而是转到最后一条记录。 E.G如果你有201,203而你插入202则会追溯到203。
  • 您选择记录的方式(因此它们被提取和显示)是另一回事。您可以运行在203之前返回202的查询,但这并不意味着这是存储在数据库中的方式
  • 如果ID实际上是int类型,我会重新调整它们使它们自动增量

    通过Id_ Desc

  • 从客户订单中选择*