-2
我的SQL Server 2008 R2中第三方應用程序中以下存儲過程: -爲什麼這個存儲過程使用TOP 100 PERCENT?
ALTER PROCEDURE [dbo].[GetContacts]
AS
BEGIN
---------
SELECT TOP (100) PERCENT .....
INTO [#temp200]
FROM dbo.Contact
ORDER BY dbo.Contact.Name
--SELECT * from #temp200
SELECT top 38 *
FROM #temp200
ORDER BY Fullname
delete top (38) FROM #temp200
SELECT top 38 *
FROM #temp200
ORDER BY Fullname
delete top (38) FROM #temp200
SELECT top 38 *
FROM #temp200
ORDER BY Fullname
delete top (38) FROM #temp200
SELECT *
FROM #temp200
ORDER BY Fullname
現在我跑這裏面的SQL管理工作室,我得到了以下結果選項卡: -
第一個包含38個記錄。
第二個38條記錄。
第三個包含38個記錄。
第四個包含30條記錄。
其中在這種情況下,我得到了144點的記錄,,所以不知道什麼是 (SELECT TOP (100))
的目的,我將得到144條記錄。現在作爲測試,我將Select TOP(100)
更改爲Select TOP(35)
,在這種情況下,我得到了2個結果;第一個有38個記錄,而第二個有17個記錄,所以任何人都可以建議我的上述SP如何工作?
你確定你沒有'SELECT TOP(100)PERCENT ..... INTO [#temp200] FROM ...'?如果是,你創建'#temp200'所有記錄從'聯繫'(144?) – lad2025
無論如何準備http://sqlfiddle.com重新創建你的情況 – lad2025
我從來沒有見過這樣的事情。這是一個糟糕的嘗試每頁分頁38條記錄,限制4頁?我也不明白爲什麼有一個頂級(100),如果它將成爲100%的頂部。你怎麼可能得到比你插入表格更多的記錄。我懷疑我們缺少這個查詢的一部分。 – ewahner