sp_bindrule(Transact-SQL)sp_bindrule (Transact-SQL)

이 항목은 다음에 적용됩니다.예SQL Server(2008부터)예Azure SQL Database아니요Azure SQL Data Warehouse 아니요병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

열 또는 별칭 데이터 형식에 규칙을 바인딩합니다.Binds a rule to a column or to an alias data type.

중요

Microsoft SQL Server의 이후 버전에서는 이 기능이 제거됩니다.This feature will be removed in a future version of Microsoft SQL Server. 새 개발 작업에서는 이 기능을 사용하지 말고, 현재 이 기능을 사용하는 응용 프로그램은 가능한 한 빨리 수정하세요.Do not use this feature in new development work, and modify applications that currently use this feature as soon as possible. 사용 하 여Unique Constraints and Check Constraints 대신 합니다. UseUnique Constraints and Check Constraints instead. CHECK 제약 조건을의 CHECK 키워드를 사용 하 여 생성 되는 CREATE TABLE 또는 ALTER TABLE 문.CHECK constraints are created by using the CHECK keyword of the CREATE TABLE or ALTER TABLE statements.

항목 링크 아이콘 Transact-SQL 구문 규칙Topic link icon Transact-SQL Syntax Conventions

구문Syntax


sp_bindrule [ @rulename = ] 'rule' ,   
     [ @objname = ] 'object_name'   
     [ , [ @futureonly = ] 'futureonly_flag' ]   

인수Arguments

[ @rulename=] '규칙'[ @rulename=] 'rule'
CREATE RULE 문으로 작성된 규칙의 이름입니다.Is the name of a rule created by the CREATE RULE statement. 규칙nvarchar(776), 기본값은 없습니다.rule is nvarchar(776), with no default.

[ @objname=] 'object_name'[ @objname=] 'object_name'
규칙을 바인딩할 테이블 및 열 또는 별칭 데이터 형식입니다.Is the table and column, or the alias data type to which the rule is to be bound. 규칙은 text, ntext, image, varchar(max), nvarchar(max), varbinary(max), xml, CLR 사용자 정의 형식 또는 timestamp 열에 바인딩할 수 없습니다.A rule cannot be bound to a text, ntext, image, varchar(max), nvarchar(max), varbinary(max), xml, CLR user-defined type, or timestampcolumn. 계산 열에 규칙을 바인딩할 수 없습니다.A rule cannot be bound to a computed column.

object_namenvarchar(776) 이며 기본값은 없습니다.object_name is nvarchar(776) with no default. 경우 object_name 은 한 부분, 별칭 데이터 형식으로 확인 됩니다.If object_name is a one-part name, it is resolved as an alias data type. 두 부분이나 세 부분으로 된 이름이면 먼저 테이블 및 열로 확인된 다음 확인이 실패하면 별칭 데이터 형식으로 확인됩니다.If it is a two- or three-part name, it is first resolved as a table and column; if this resolution fails, it is resolved as an alias data type. 기본적으로 별칭 데이터 형식의 기존 열을 상속 규칙 열에 직접 규칙에 바인딩된 경우를 제외 합니다.By default, existing columns of the alias data type inherit rule unless a rule has been bound directly to the column.

참고

object_name 대괄호 포함 될 수 있습니다 [] 구분된 식별자 문자로 문자입니다.object_name can contain the bracket [ and ] characters as delimited identifier characters. 자세한 내용은 Database Identifiers을 참조하세요.For more information, see Database Identifiers.

참고

별칭 데이터 형식을 사용하는 식에 대해 만든 규칙을 열이나 별칭 데이터 형식에 바인딩할 수 있지만 이들 규칙을 참조할 때 컴파일할 수 없습니다.Rules created on expressions that use alias data types can be bound to columns or alias data types, but fail to compile when they are referenced. 별칭 데이터 형식에 대해 만든 규칙을 사용하지 마십시오.Avoid using rules created on alias data types.

[ @futureonly= ] 'futureonly_flag'[ @futureonly= ] 'futureonly_flag'
규칙을 별칭 데이터 형식에 바인딩하는 경우에만 사용합니다.Is used only when binding a rule to an alias data type. future_only_flagvarchar(15) 기본값은 NULL입니다.future_only_flag is varchar(15) with a default of NULL. 로 설정 된 경우이 매개 변수 futureonly 새 규칙을 상속 별칭 데이터 형식의 기존 열을 방지 합니다.This parameter when set to futureonly prevents existing columns of an alias data type from inheriting the new rule. 경우 futureonly_flag 가 null 인 경우 새 규칙이 있는 현재 규칙이 없거나 별칭 데이터 형식의 기존 규칙을 사용 하는 별칭 데이터 형식의 열에 바인딩됩니다.If futureonly_flag is NULL, the new rule is bound to any columns of the alias data type that currently have no rule or that are using the existing rule of the alias data type.

반환 코드 값Return Code Values

0(성공) 또는 1(실패)0 (success) or 1 (failure)

주의Remarks

(CHECK 제약 조건을 사용 하는 것이 좋습니다) 하지만 열에 새 규칙을 바인딩할 수 또는 별칭 데이터 형식으로 sp_bindrule 없이 기존 규칙을 바인딩 해제 합니다.You can bind a new rule to a column (although using a CHECK constraint is preferred) or to an alias data type with sp_bindrule without unbinding an existing rule. 이 경우 이전 규칙은 무시됩니다.The old rule is overridden. 기존의 CHECK 제약 조건으로 규칙이 열에 바인딩된 경우에는 모든 제한이 평가됩니다.If a rule is bound to a column with an existing CHECK constraint, all restrictions are evaluated. SQL ServerSQL Server 데이터 형식에 규칙을 바인딩할 수 없습니다.You cannot bind a rule to a SQL ServerSQL Server data type.

규칙은 바인딩 시점이 아니라 INSERT 문을 시도할 때 적용되며The rule is enforced when an INSERT statement is tried, not at binding. 열에 문자 규칙을 바인딩할 수 숫자 이 INSERT 작업이 유효 하지 않지만 데이터 형식입니다.You can bind a character rule to a column of numeric data type, although such an INSERT operation is not valid.

별칭 데이터 형식의 기존 열 하지 않는 한 새 규칙을 상속 futureonly_flag 로 지정 된 futureonly합니다.Existing columns of the alias data type inherit the new rule unless futureonly_flag is specified as futureonly. 별칭 데이터 형식으로 정의된 새 열은 항상 규칙을 상속합니다.New columns defined with the alias data type always inherit the rule. 그러나 ALTER TABLE 문의 ALTER COLUMN 절이 열의 데이터 형식을 규칙에 바인딩된 별칭 데이터 형식으로 변경하는 경우에는 데이터 형식에 바인딩된 규칙이 열에 상속되지 않습니다.However, if the ALTER COLUMN clause of an ALTER TABLE statement changes the data type of a column to an alias data type bound to a rule, the rule bound to the data type is not inherited by the column. 규칙 특히 바인딩되어야 열에 사용 하 여 sp_bindrule합니다.The rule must be specifically bound to the column by using sp_bindrule.

열에 규칙을 바인딩 관련된 정보에 추가 됩니다는 sys.columns 테이블입니다.When you bind a rule to a column, related information is added to the sys.columns table. 별칭 데이터 형식에 규칙을 바인딩 관련된 정보에 추가 됩니다는 sys.types 테이블입니다.When you bind a rule to an alias data type, related information is added to the sys.types table.

PermissionsPermissions

테이블 열에 규칙을 바인딩하려면 해당 테이블에 대한 ALTER 권한이 필요합니다.To bind a rule to a table column, you must have ALTER permission on the table. 별칭 데이터 형식에 규칙을 바인딩하려면 별칭 데이터 형식에 대한 CONTROL 권한 또는 그 형식이 속한 스키마에 대한 ALTER 권한이 필요합니다.CONTROL permission on the alias data type, or ALTER permission on the schema to which the type belongs, is required to bind a rule to an alias data type.

Examples

1.A. 열에 규칙 바인딩Binding a rule to a column

CREATE RULE 문을 사용하여 현재 데이터베이스에 today라는 규칙을 만들었다고 가정할 때 다음 예에서는 HireDate 테이블의 Employee 열에 이 규칙을 바인딩하는 방법을 보여 줍니다.Assuming that a rule named today has been created in the current database by using the CREATE RULE statement, the following example binds the rule to the HireDate column of the Employee table. 이제 Employee에 행을 추가하면 HireDate 열의 데이터가 today 규칙에 부합하는지 확인합니다.When a row is added to Employee, the data for the HireDate column is checked against the today rule.

USE master;  
GO  
EXEC sp_bindrule 'today', 'HumanResources.Employee.HireDate';  

2.B. 별칭 데이터 형식에 규칙 바인딩Binding a rule to an alias data type

rule_ssn이라는 규칙과 ssn이라는 별칭 데이터 형식이 있다고 가정할 때 다음 예에서는 rule_ssnssn을 바인딩하는 방법을 보여 줍니다.Assuming the existence of a rule named rule_ssn and an alias data type named ssn, the following example binds rule_ssn to ssn. CREATE TABLE 문에서 ssn 형식의 열은 rule_ssn 규칙을 상속합니다.In a CREATE TABLE statement, columns of type ssn inherit the rule_ssn rule. 형식의 기존 열 ssn 상속는 rule_ssn 규칙을 하지 않는 한 futureonly 에 대해 지정 된 futureonly_flag, 또는 ssn 에 직접 바인딩한 규칙이 있습니다.Existing columns of type ssn also inherit the rule_ssn rule, unless futureonly is specified for futureonly_flag, or ssn has a rule bound directly to it. 데이터 형식에 바인딩한 규칙보다 열에 바인딩한 규칙이 항상 우선합니다.Rules bound to columns always take precedence over those bound to data types.

USE master;  
GO  
EXEC sp_bindrule 'rule_ssn', 'ssn';  

3.C. futureonly_flag 사용Using the futureonly_flag

다음 예에서는 rule_ssn 별칭 데이터 형식에 ssn 규칙을 바인딩하는 방법을 보여 줍니다.The following example binds the rule_ssn rule to the alias data type ssn. futureonly를 지정하였으므로 기존 ssn 형식의 열은 전혀 영향을 받지 않습니다.Because futureonly is specified, no existing columns of type ssn are affected.

USE master;  
GO  
EXEC sp_bindrule rule_ssn, 'ssn', 'futureonly';  

4.D. 구분 식별자 사용Using delimited identifiers

다음 예제에서 구분된 식별자 사용을 보여 줍니다. object_name 매개 변수입니다.The following example shows the use of delimited identifiers in object_name parameter.

USE master;  
GO  
CREATE TABLE [t.2] (c1 int) ;  
-- Notice the period as part of the table name.  
EXEC sp_bindrule rule1, '[t.2].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.  

관련 항목:See Also

시스템 저장 프로시저(Transact-SQL) System Stored Procedures (Transact-SQL)
데이터베이스 엔진 저장 프로시저 (Transact SQL) Database Engine Stored Procedures (Transact-SQL)
CREATE RULE(Transact-SQL) CREATE RULE (Transact-SQL)
DROP RULE (Transact-SQL) DROP RULE (Transact-SQL)
sp_unbindrule (Transact-SQL) sp_unbindrule (Transact-SQL)
시스템 저장 프로시저(Transact-SQL)System Stored Procedures (Transact-SQL)