codememo

SQL Server에서 제약 조건의 이름을 바꾸시겠습니까?

tipmemo 2023. 5. 13. 10:13
반응형

SQL Server에서 제약 조건의 이름을 바꾸시겠습니까?

SQL Server에서 제약 조건의 이름을 바꿀 수 있습니까?이 제약 조건은 이미 존재하는 다른 제약 조건에 영향을 미치기 때문에 삭제하고 새로 만들 필요가 없습니다.

좀 더 파본 후에, 저는 그것이 실제로 다음과 같은 형태여야 한다는 것을 발견했습니다.

EXEC sp_rename N'schema.MyIOldConstraint', N'MyNewConstraint', N'OBJECT'

원천

다음을 사용하여 sp_rename을 사용하여 이름을 변경할 수 있습니다.@objtype = 'OBJECT'

이 작업은 제약 조건을 포함하는 sys.objects에 나열된 개체에서 작동합니다.

sp_rename을 사용할 수 있습니다.

sp_rename 'CK_Ax', 'CK_Ax1'

정답은 참입니다.

exec sp_rename 
@objname = 'Old_Constraint',
@newname = 'New_Constraint',
@objtype = 'object'

이것이 오래된 질문이라는 것을 알지만, 다른 훌륭한 답변 외에도 다음과 같은 것들이 매우 유용하다는 것을 알게 되었습니다.

이름을 바꿀 제약 조건에 마침표(점)가 있는 경우 다음과 같이 대괄호로 묶어야 합니다.

sp_rename 'schema.[Name.With.Period.In.It]', 'New.Name.With.Period.In.It'

이건 어때요?

ALTER TABLE schema.table_name RENAME CONSTRAINT old_fk1 TO new_fk11;

쿼리를 실행하여 저처럼 "제약이 이미 존재합니다"라는 오류 메시지가 있는 테이블을 만들 때 문제가 발생하는 경우, 원인이 저와 같기 때문일 수 있습니다.

우리 팀이 db 구조를 생산 환경으로 업데이트할 때, 새로운 테이블 하나를 만들 수 없기 때문에 고착되었습니다.

테이블이 실제로 이름이 변경된 오래된 테이블이기 때문에 테이블이 이미 이전 이름으로 생산 중이라는 것을 알게 되었습니다.

따라서 운영 중인 테이블의 이름을 변경할 수 있습니다.또는 삭제한 후 새 테이블을 만듭니다.

언급URL : https://stackoverflow.com/questions/8712875/rename-a-constraint-in-sql-server

반응형