IT/SQL
MSSQL DELETE 및 DELETE JOIN
아이앤휘
2024. 4. 22. 13:33
MSSQL DELETE 문과 FROM 및 JOIN 절을 사용한 DELETE 문을 살펴봅니다.
구문
-- Syntax for SQL Server and Azure SQL Database
[ WITH <common_table_expression> [ ,...n ] ]
DELETE
[ TOP ( expression ) [ PERCENT ] ]
[ FROM ]
{ { table_alias
| <object>
| rowset_function_limited
[ WITH ( table_hint_limited [ ...n ] ) ] }
| @table_variable
}
[ <OUTPUT Clause> ]
[ FROM table_source [ ,...n ] ]
[ WHERE { <search_condition>
| { [ CURRENT OF
{ { [ GLOBAL ] cursor_name }
| cursor_variable_name
}
]
}
}
]
[ OPTION ( <Query Hint> [ ,...n ] ) ]
[; ]
<object> ::=
{
[ server_name.database_name.schema_name.
| database_name. [ schema_name ] .
| schema_name.
]
table_or_view_name
}
잘 안쓰는 내용까지 섞여있어서 구문이 깁니다.
간단한 구문을 이용한 샘플을 보겠습니다.
기본구분은 아래와 같습니다.
DELETE FROM TA WHERE C1 < 10
JOIN 을 사용한 DELETE
테이블 TA 와 TB 는 각각 아래와 같이 10 개와 6개의 레코드가 있습니다.
구문
DELETE A
FROM TA A
JOIN TB B ON A.C1 = B.C1
FROM 이하 절은 SELECT 등과 동일하고, DELETE 뒤에 지울 테이블의 ALIAS 를 넣어줍니다.
DELETE 결과
TOP 절을 이용한 DELETE
대량의 데이터를 삭제할 때 잠김을 방지하기 위해서 종종 사용합니다.