0

我是新創建數據庫的人,目前正試圖完成對我來說非常必要的事情。將SQL Server行插入到格式化表中的特定位置

可以說我有一個300行的數據庫「客戶」,全部都有一個唯一的標識符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'); 

我得到隨機插入數據庫中的行,所以我的q uestion是如何在201(Id_)之後和203(Id_)之前完全插入此行?

+0

您是否將Id作爲主鍵?你是指一排的位置? –

+0

難道你不能只使用'ORDER BY Id_'?數據很少每個都整齊排列在數據庫中... – waka

+0

我仍然沒有得到這個問題,你的意思是你不能插入202或行位置不是升序(或降序)? 'id_'列的數據類型是什麼? – Krofz

回答

1

爲了幫助你清楚一些事情:

  • ID字段似乎是int,而不是唯一的標識符
  • 插入語句在數據庫中隨機做,他們去到最後一個記錄。 E.G如果你有201,203,並且你插入了202,它將會在203之後。
  • 你選擇記錄的方式(因此它們被取出並顯示)是另一回事。你可能會碰到返回202 203前一查詢,但這並不意味着這是存儲在數據庫中
  • 如果ID實際上是int型我偵察你讓他們的汽車增量的方式

    選擇*來自客戶訂單編號描述

+0

行最終取決於聚簇索引。在堆中,或者如果聚集索引的列值是嚴格遞增的,則它們會到最後,但否則它們會到聚集索引指示它們去的地方。當然,聚集索引以某種方式組織的事實對於檢索行(保證被檢索)的順序沒有影響。 –

+0

事實是我沒有意識到這一點,只是導致99%的時間我使用汽車公司作爲索引,他們最終最終... – apomene

+0

好吧,那麼我猜是不可能的,所以我的下一個問題是:是當我右鍵單擊數據庫表並選擇編輯所有行時,是否可以使SQl以某種順序顯示行?在這種情況下,它將顯示由Id_值組織。 – user3355068

相關問題