102: Incorrect syntax near 'token'
SQL Server의미
Transact-SQL 파서가 지정된 토큰 근처에서 잘못된 구문을 발견해 문장을 컴파일할 수 없었다. 쿼리는 실행 전에 거부된다.
원인
오타, 누락된 쉼표/괄호, 대괄호 없이 사용한 예약어(예: USER, ORDER), 종료되지 않은 문자열 리터럴, 다른 SQL 방언에서 복사한 호환되지 않는 구문이 원인이다. 동적 SQL의 문자열 연결 실수도 흔한 원인이다.
해결 방법
보고된 토큰 주변을 주의 깊게 확인한다. 오류는 종종 앞 줄에 있다. 예약어는 대괄호로 감싸고([Order]) 괄호와 쉼표의 짝이 맞는지 확인한다. 동적 SQL을 만든다면 PRINT @sql로 생성된 텍스트를 확인하고 실행해 본다. 구문이 버전/호환성 수준에서 지원되는지 확인한다.
같은 데이터베이스의 다른 항목
- 10928Resource limit for the database has been reached (Azure SQL) (데이터베이스 리소스 한도 도달)
- 40544The database has reached its size quota (Azure SQL) (데이터베이스 크기 할당량 도달)
- 40613Database is not currently available (Azure SQL) (데이터베이스를 현재 사용할 수 없음)
- 8114Error converting data type X to Y
- 1204The instance of the SQL Server Database Engine cannot obtain a LOCK resource (SQL Server Database Engine 인스턴스가 LOCK 리소스를 확보할 수 없음)
- 3906Failed to update database because the database is read-only (데이터베이스가 읽기 전용이어서 갱신 실패)
- 15023User already exists in the current database (현재 데이터베이스에 사용자가 이미 존재)