2714: There is already an object named in the database (데이터베이스에 같은 이름의 개체가 이미 있음)
SQL Server의미
생성하려는 개체(테이블, 뷰, 프로시저 등)와 같은 이름의 개체가 데이터베이스에 이미 존재한다. 이름 충돌로 CREATE 문이 실패했다.
원인
같은 CREATE 스크립트를 두 번 실행, 기존 개체를 먼저 삭제하지 않음, 다른 스키마를 전제로 함, 멱등성이 없는 배포/마이그레이션 스크립트, 또는 이름 충돌.
해결 방법
먼저 개체 존재 여부를 확인한다. IF OBJECT_ID('dbo.Name') IS NULL로 조건부 생성하거나 CREATE OR ALTER를 사용한다(프로시저/뷰/함수). 필요하면 기존 개체를 DROP하고 다시 생성한다. 마이그레이션 스크립트는 멱등하게 작성한다. 올바른 스키마/데이터베이스에서 작업 중인지 확인한다.
같은 데이터베이스의 다른 항목
- 2812Could not find stored procedure (저장 프로시저를 찾을 수 없음)
- 8623The query processor ran out of internal resources and could not produce a query plan (쿼리 프로세서 내부 리소스 부족으로 쿼리 계획 생성 불가)
- 4104The multi-part identifier could not be bound (다중 부분 식별자를 바인딩할 수 없음)
- 601Could not continue scan with NOLOCK due to data movement (데이터 이동으로 NOLOCK 스캔을 계속할 수 없음)
- 50000Custom error raised with RAISERROR (RAISERROR로 발생시킨 사용자 정의 오류)
- 3902The COMMIT TRANSACTION request has no corresponding BEGIN TRANSACTION (대응하는 BEGIN TRANSACTION이 없는 COMMIT TRANSACTION)
- 1101Could not allocate a new page because of insufficient disk space in filegroup (파일 그룹의 디스크 공간 부족으로 새 페이지를 할당할 수 없음)