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 (...);
DELETE
특히 (적어도 IIRC)이 더 이상 엄격한 ANSI를 준수하지 않기 때문에이 특정 진술에 대한 앨리어싱 포인트를 보지 못했습니다 . 그러나 그렇습니다. 의견에서 알 수 있듯이 다른 쿼리 형식 (예 : 상관 관계)이 필요할 수 있습니다.
답변
delete 문에 이상한 구문이 있습니다. 다음과 같이 진행됩니다.
DELETE f FROM foods f WHERE (f.name IN ('chickens', 'rabbits'))