sp_unbindrule(Transact-SQL)

적용 대상:SQL Server

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

Important

이 기능은 이후 버전의 SQL Server에서 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 애플리케이션은 수정하세요. 대신 ALTER TABLE 또는 CREATE TABLE 문에서 DEFAULT 키워드(keyword) 사용하여 기본 정의를 만드는 것이 좋습니다.

Transact-SQL 구문 표기 규칙

구문

sp_unbindrule
    [ @objname = ] N'objname'
    [ , [ @futureonly = ] 'futureonly' ]
[ ; ]

인수

[ @objname = ] N'objname'

테이블 및 열의 이름 또는 규칙이 바인딩되지 않은 별칭 데이터 형식입니다. @objname nvarchar(776)이며 기본값은 없습니다. SQL Server는 두 부분으로 구성된 식별자를 먼저 열 이름으로 확인한 다음 별칭 데이터 형식으로 확인하려고 시도합니다. 별칭 데이터 형식에서 규칙을 바인딩 해제하는 경우 동일한 규칙이 있는 데이터 형식의 모든 열도 바인딩되지 않습니다. 규칙이 직접 바인딩된 이 데이터 형식의 열은 영향을 받지 않습니다.

참고 항목

@objname 구분된 식별자 문자로 대괄호를 [] 포함할 수 있습니다. 자세한 내용은 Database Identifiers을 참조하세요.

[ @futureonly = ] 'futureonly'

별칭 데이터 형식에서 규칙을 바인딩 해제하는 경우에만 사용됩니다. @futureonly 기본값NULL인 varchar(15)입니다. @futureonlyfutureonly경우 해당 데이터 형식의 기존 열은 지정된 규칙을 잃지 않습니다.

반환 코드 값

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

설명

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

규칙이 바인딩되지 않은 경우 규칙이 열에 바인딩된 sys.columns 경우 테이블과 sys.types 규칙이 별칭 데이터 형식에 바인딩된 경우 테이블에서 바인딩에 대한 정보가 제거됩니다.

규칙이 별칭 데이터 형식에서 바인딩되지 않은 경우 해당 별칭 데이터 형식을 가진 모든 열에서도 바인딩되지 않습니다. 나중에 ALTER TABLE 문의 ALTER COLUMN 절에 의해 데이터 형식이 변경된 열에도 규칙이 바인딩될 수 있습니다. 열 이름을 사용하고 sp_unbindrule 지정하여 이러한 열에서 규칙을 구체적으로 바인딩 해제해야 합니다.

사용 권한

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

예제

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

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

EXEC sp_unbindrule 'employees.startdate';

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

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

EXEC sp_unbindrule ssn;

C. futureonly_flag 사용

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

EXEC sp_unbindrule 'ssn', 'futureonly';

D. 구분된 식별자 사용

다음 예제에서는 @objname 매개 변수에서 구분된 식별자를 사용하는 방법을 보여 있습니다. 테이블 이름의 일부로 마침표가 표시됩니다. sp_bindrule 이 부분에서 개체에는 두 개의 마침표가 포함됩니다. 첫 번째 마침표는 테이블 이름의 일부이고 두 번째 마침표는 열 이름과 테이블 이름을 구분합니다.

CREATE TABLE [t.4] (c1 int);
GO
CREATE RULE rule2 AS @value > 100;
GO
EXEC sp_bindrule rule2, '[t.4].c1'
GO
EXEC sp_unbindrule '[t.4].c1';