다음을 통해 공유


sp_unbindrule(Transact-SQL)

현재 데이터베이스의 열에서 또는 별칭 데이터 형식에서 규칙을 바인딩 해제합니다.

중요 정보중요

이 기능은 다음 버전의 Microsoft SQL Server에서 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 말고, 현재 이 기능을 사용하는 응용 프로그램은 가능한 한 빨리 수정하십시오. 대신 ALTER TABLE 또는 CREATE TABLE 문에서 DEFAULT 키워드를 사용하여 기본 정의를 만드는 것이 좋습니다. 자세한 내용은 DEFAULT 정의 만들기 및 수정을 참조하십시오.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

sp_unbindrule [ @objname = ] 'object_name' 
     [ , [ @futureonly = ] 'futureonly_flag' ]

인수

  • [ @objname= ] 'object_name'
    바인딩이 해제된 규칙이 있는 테이블 및 열의 이름 또는 별칭 데이터 형식입니다. object_name은 nvarchar(776)이며 기본값은 없습니다. SQL Server에서는 열 이름과 별칭 데이터 형식 순으로 두 부분의 식별자를 확인합니다. 별칭 데이터 형식에서 규칙을 바인딩 해제하는 경우 같은 규칙을 가진 데이터 형식의 열 또한 바인딩 해제됩니다. 규칙이 직접 바인딩된 이 데이터 형식의 열은 영향을 받지 않습니다.

    [!참고]

    object_name은 구분 식별자 문자로 대괄호([])를 포함할 수 있습니다. 자세한 내용은 구분 식별자(데이터베이스 엔진)를 참조하십시오.

  • [ @futureonly= ] 'futureonly_flag'
    별칭 데이터 형식에서 규칙의 바인딩을 해제하는 경우에만 사용됩니다. futureonly_flag는 varchar(15)이며 기본값은 NULL입니다. futureonly_flag가 futureonly인 경우 이 데이터 형식의 기존 열에서 지정한 규칙이 제거되지 않습니다.

반환 코드 값

0(성공) 또는 1(실패)

주의

규칙 텍스트를 표시하려면 규칙 이름을 매개 변수로 사용하여 sp_helptext를 실행하십시오.

규칙을 바인딩 해제하는 경우 바인딩에 관한 정보는 규칙이 열에 바인딩되었으면 sys.columns 테이블에서 제거되고 규칙이 별칭 데이터 형식에 바인딩되었으면 sys.types 테이블에서 제거됩니다.

규칙이 별칭 데이터 형식에서 바인딩 해제되면 해당 규칙은 이 별칭 데이터 형식을 가진 열에서도 바인딩 해제됩니다. 이후에 ALTER TABLE 문의 ALTER COLUMN 절에 의해 데이터 형식이 변경된 열에는 규칙이 여전히 바인딩되어 있을 수도 있으므로 sp_unbindrule을 사용하고 열의 이름을 지정하여 반드시 해당 열에서 규칙을 바인딩 해제해야 합니다.

사용 권한

테이블 열에서 규칙을 바인딩 해제하려면 테이블에 대한 ALTER 권한이 필요합니다. 별칭 데이터 형식에서 규칙을 바인딩 해제하려면 형식에 대한 CONTROL 권한 또는 형식이 속한 스키마에 대한 ALTER 권한이 필요합니다.

1. 열에서 규칙 바인딩 해제

다음 예에서는 employees 테이블의 startdate 열에서 규칙을 바인딩 해제합니다.

EXEC sp_unbindrule 'employees.startdate'

2. 별칭 데이터 형식에서 규칙 바인딩 해제

다음 예에서는 ssn 별칭 데이터 형식에서 규칙을 바인딩 해제합니다. 해당 형식의 기존 열 및 향후 열에서 규칙을 바인딩 해제합니다.

EXEC sp_unbindrule ssn

3. futureonly_flag 사용

다음 예에서는 기존 ssn 열에 영향을 주지 않고 ssn 별칭 데이터 형식에서 규칙을 바인딩 해제합니다.

EXEC sp_unbindrule 'ssn', 'futureonly'

4. 구분 식별자 사용

다음 예에서는 object_name 매개 변수에서 구분 식별자 [t.1]을 사용하는 방법을 보여 줍니다.

CREATE TABLE [t.4] (c1 int) -- Notice the period as part of the table 
-- name.
GO
CREATE RULE rule2 AS @value > 100
GO
EXEC sp_bindrule rule2, '[t.4].c1' -- The object contains two 
-- periods; the first is part of the table name and the second 
-- distinguishes the table name from the column name.
GO
EXEC sp_unbindrule '[t.4].c1'