>데이터 베이스 >MySQL 튜토리얼 >이름을 알 수 없는 경우 SQL Server에서 기본 제약 조건을 삭제하는 방법은 무엇입니까?

이름을 알 수 없는 경우 SQL Server에서 기본 제약 조건을 삭제하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2025-01-03 18:56:39214검색

How to Drop Default Constraints in SQL Server When Their Names Are Unknown?

Microsoft SQL Server에서 이름을 알 수 없는 기본 제약 조건 삭제

이 질문은 이름이 다음과 같은 경우 SQL 테이블에서 기본 제약 조건을 제거하는 문제를 해결합니다. 잠재적인 오타로 인해 알 수 없습니다. 사용자가 제공한 기존 쿼리는 실행을 위해 정확한 제약 조건 이름이 필요하며 이는 특정 상황에서 문제가 될 수 있습니다.

해결책

제안된 해결 방법은 다음과 같습니다. 제공된 테이블, 열 및 스키마 정보를 기반으로 제약 조건을 삭제하는 동적 SQL 명령을 생성하고 실행합니다. 사용자가 공유하는 코드 조각은 다음과 같이 확장될 수 있습니다.

declare @schema_name nvarchar(256)
declare @table_name nvarchar(256)
declare @col_name nvarchar(256)
declare @Command  nvarchar(1000)

set @schema_name = N'MySchema'
set @table_name = N'Department'
set @col_name = N'ModifiedDate'

select @Command = 'ALTER TABLE ' + @schema_name + '.[' + @table_name + '] DROP CONSTRAINT ' + d.name
from sys.tables t
join sys.default_constraints d on d.parent_object_id = t.object_id
join sys.columns c on c.object_id = t.object_id and c.column_id = d.parent_column_id
where t.name = @table_name
and t.schema_id = schema_id(@schema_name)
and c.name = @col_name

--print @Command

execute (@Command)

이 코드는 특정 스키마의 특정 테이블 및 열에 대한 기본 제약 조건을 삭제하는 데 필요한 SQL 명령을 생성합니다. 명령은 제공된 매개변수를 기반으로 동적으로 생성되므로 제약 조건 이름을 알 수 없는 경우에도 SQL 오류 없이 실행할 수 있습니다.

위 내용은 이름을 알 수 없는 경우 SQL Server에서 기본 제약 조건을 삭제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.