반응형
DELETE 문에서 별칭을 사용할 수 없는 이유는 무엇입니까?
Visual Studio 2010의 SQL Server Compact Edition(일반적으로 SQL Server 및 SQL은 잘 모르겠지만)에서는 다음 명령을 사용할 수 있습니다.
DELETE FROM foods WHERE (name IN ('chickens', 'rabbits'))
단, 이 명령어는 다음 오류를 생성합니다.Error near identifier f. Expecting OUTPUT.
DELETE FROM foods f WHERE (f.name IN ('chickens', 'rabbits'))
테이블에 이름을 붙이려면 다음과 같이 말해야 합니다.
DELETE f FROM dbo.foods AS f WHERE f.name IN (...);
...특히 (적어도 IIRC는) 엄격한 ANSI에 준거하지 않게 되어, 복수의 플랫폼에 기입할 때에 불필요한 장해가 발생할 가능성이 있어, 바닐라 DML 의 기본을 학습하는 신규 유저에게 복잡성과 혼란이 생깁니다.
이렇게 하면 에일리어스가 필요 없습니다.
DELETE dbo.foods WHERE name IN (...);
단, 코멘트가 시사하는 바와 같이 다른 쿼리 폼(예를 들어 상관 관계, 결합, 결합, 결합, 결합, 결합, 결합, 결합, 결합 등)이 필요할 수 있습니다.EXISTS, 등)을 사용하면 SQL Server에서 다음을 사용하여 이를 수행할 수 있습니다.
DELETE f
FROM dbo.foods AS f
INNER JOIN dbo.allergies AS a
ON f.FoodId = a.FoodId;
이 쿼리는 {not SQL Server}에서 다르게 구성해야 할 수 있습니다.
delete 문에 이상한 구문이 있습니다.그건 이런 식이다:
DELETE f FROM foods f WHERE (f.name IN ('chickens', 'rabbits'))
언급URL : https://stackoverflow.com/questions/11005209/why-cant-i-use-an-alias-in-a-delete-statement
반응형
'programing' 카테고리의 다른 글
| 스토어드 프로시저에서 "SET XACT_ABORT ON"을 사용하면 어떤 이점이 있습니까? (0) | 2023.04.06 |
|---|---|
| 쿼리를 사용하여 임시 테이블에 데이터 삽입 (0) | 2023.04.06 |
| SQL Server:sp_who2의 필터 출력 (0) | 2023.04.06 |
| 저장되지 않은 SQL 쿼리 스크립트 복구 (0) | 2023.04.06 |
| T-SQL 분할 문자열 (0) | 2023.04.06 |