[SQL] 어떻게 2008는 SQL Server를 사용하여 테이블에서 최고 1,000 행을 삭제하려면?
SQL어떻게 2008는 SQL Server를 사용하여 테이블에서 최고 1,000 행을 삭제하려면?
나는 SQL Server의 테이블을 가지고있다. 나는 그것에서 최고 1000 행을 삭제하고 싶습니다. 그러나, 나는이 시도하지만 대신 상단 1000 행을 삭제하는이 테이블의 모든 행을 삭제.
여기에 코드입니다 :
delete from [mytab]
select top 1000
a1,a2,a3
from [mytab]
해결법
-
==============================
1.당신이 시도 코드는 실제로 두 문장이다. 는 SELECT 하였다 삭제한다.
당신이 시도 코드는 실제로 두 문장이다. 는 SELECT 하였다 삭제한다.
무엇으로 주문과 같이 TOP을 정의하지 않습니다.
CTE를 또는 유사한 테이블 표현식에서 삭제 특정 주문 기준을 위해 가장 효율적인 방법입니다.
;WITH CTE AS ( SELECT TOP 1000 * FROM [mytab] ORDER BY a1 ) DELETE FROM CTE
-
==============================
2.SQL2005 +를 사용하는 더 좋을 수 있습니다 :
SQL2005 +를 사용하는 더 좋을 수 있습니다 :
DELETE TOP (1000) FROM [MyTab] WHERE YourConditions
SQL2000 경우 :
DELETE FROM [MyTab] WHERE YourIdField IN ( SELECT TOP 1000 YourIdField FROM [MyTab] WHERE YourConditions )
그러나
대신 임의의 부분 집합의 행의 특정 부분 집합을 삭제하려면, 당신은 명시 적으로 하위 쿼리에 순서를 지정해야합니다 :
DELETE FROM [MyTab] WHERE YourIdField IN ( SELECT TOP 1000 YourIdField FROM [MyTab] WHERE YourConditions ORDER BY ExplicitSortOrder )
덕분 언급하고 더 명확하고 정확한 답을 요구하기위한 @gbn TP.
-
==============================
3.아래 링크에 정의 된대로, 당신은 정직하게 삭제할 수 있습니다
아래 링크에 정의 된대로, 당신은 정직하게 삭제할 수 있습니다
USE AdventureWorks2008R2; GO DELETE TOP (20) FROM Purchasing.PurchaseOrderDetail WHERE DueDate < '20020701'; GO
http://technet.microsoft.com/en-us/library/ms175486(v=sql.105).aspx
-
==============================
4.
delete from [mytab] where [mytab].primarykeyid in ( select top 1000 primarykeyid from [mytab] )
-
==============================
5.
SET ROWCOUNT 1000; DELETE FROM [MyTable] WHERE .....
-
==============================
6.그것은 빠릅니다. 시도 해봐:
그것은 빠릅니다. 시도 해봐:
DELETE FROM YourTABLE FROM (SELECT TOP XX PK FROM YourTABLE) tbl WHERE YourTABLE.PK = tbl.PK
테이블 이름으로 YourTABLE 교체, 숫자가 XX, 예를 들어 1000, PK는 테이블의 기본 키 필드의 이름입니다.
from https://stackoverflow.com/questions/8955897/how-to-delete-the-top-1000-rows-from-a-table-using-sql-server-2008 by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQLite는 주문 Date1530019888000 (0) | 2020.05.21 |
---|---|
[SQL] SQL 서버에 두 개의 날짜 시간의 차이 (0) | 2020.05.21 |
[SQL] SQL 서버에 대한 string_agg 2017 사전 (0) | 2020.05.20 |
[SQL] MySQL의에서 다음 달의 첫 번째와 마지막 날짜를 가져 오기 (0) | 2020.05.20 |
[SQL] 추가 "ID"열 대 복합 기본 키? (0) | 2020.05.20 |