2010-08-25 32 views
0
  1. 我有一個表格,當添加記錄/行時,沒有存儲字段的列。我怎樣才能獲得最新的表格?這裏有兩種情況:這些任務如何在SQL中完成?

    • 循環遍歷整個表並獲取最大的ID,如果使用數字ID作爲標識符的話。但是這對於一張大桌子來說效率很低。
    • 如果一個隨機字符串被用作標識符(這可能是非常非常糟糕的做法),那麼這需要更多的思考(除了我上面的第一點,我個人不知道)。
  2. 如果我有我的表的每一行是數字在一個領域,我想這加起來一共拿到了(所以第1行有一個字段是3,第2行有一個字段,是7,我想補充所有這些並返回總數),這將如何完成?

感謝

+0

對於哪個版本的SQL Server? – 2010-08-25 23:06:02

+0

看起來像兩個問題... – Ken 2010-08-25 23:10:17

回答

2

1)如果id是遞增的,則選擇「max(id)as mytable from mytable」。如果使用了一個隨機字符串,則應該還有一個增量數字主鍵。添加它。沒有理由不擁有一個,並且數據庫經過優化以使用這樣的主鍵進行關係。

2)「選擇總和(mynumfield)從MYTABLE總」

2

的最後一件事用SUM()

SELECT SUM(OrderPrice) AS OrderTotal FROM Orders 

假設他們都在同一列。

1

你的第一個問題是有點不清楚,但如果你想知道行插入(或更新),那麼唯一的方法是記錄插入/更新發生的時間。通常,您使用DEFAULT約束進行插入,並使用觸發器進行更新。

如果你想知道的最大值(這可能不一定是最後插入的行),然後使用MAX,正如其他人所說:

SELECT MAX(SomeColumn) FROM dbo.SomeTable 

如果列索引,MSSQL不需要讀整個表來回答這個查詢。

對於第二個問題,只是這樣做:

SELECT SUM(SomeColumn) FROM dbo.SomeTable 

你可能要考慮一些SQL書籍和教程回暖的基本語法。