• 相关软件
    >sp_unbindrule 创建者:webmaster 更新时间:2006-02-16 15:51

    在当前数据库中为列或用户定义数据类型解除规则绑定。


                                                                     
    语法


    sp_unbindrule [@objname =] 'object_name'

        [, [@futureonly =] 'futureonly_flag']



    参数


    [@objname =] 'object_name'



    是要解除规则绑定的表和列或者用户定义数据类型的名称。object_name 的数据类型为 nvarchar(776),无默认值。如果参数不是 table.column 的形式,则假定 object_name 为用户定义数据类型。当为用户定义数据类型解除规则绑定时,所有属于该数据类型并具有相同规则的列也同时解除规则绑定。对属于该数据类型的列,如果其规则直接绑定到列上,则该列不受影响。



    说明  object_name 中可以含有 [ and ] 字符作为分隔标识符。有关更多信息,请参见分隔标识符



    [@futureonly =] 'futureonly_flag'



    仅用于解除用户定义数据类型规则的绑定。futureonly_flag 的数据类型为 varchar(15),其默认值为 NULL。当参数 futureonly_flagfutureonly 时,现有的属于该数据类型的列不会失去指定规则。



    返回代码值


    0(成功)或 1(失败)



    注释


    若要显示某条规则的文本,请以该规则的名称作为参数来执行存储过程 sp_helptext



    解除规则绑定时,如果规则绑定到列,则绑定信息从表 syscolumns 中删除。如果规则绑定到用户定义数据类型,则绑定信息从表 systypes 中删除。



    当从用户定义数据类型解除规则绑定时,任何具有该用户定义数据类型的列也同时解除该规则的绑定。对于后来用 ALTER TABLE 语句的 ALTER COLUMN 子句更改了数据类型的列,该规则仍可能绑定在该列上,必须使用存储过程 sp_unbindrule(并指定列名)明确地从这些列中解除规则绑定。



    权限


    只有 sysadmin 固定服务器角色、db_ownerdb_ddladmin 固定数据库角色的成员以及表所有者才能执行 sp_unbindrule



    示例


    A. 为列解除规则绑定


    下例为表 employeesstartdate 列解除规则绑定。



    EXEC sp_unbindrule 'employees.startdate'


    B. 为用户定义数据类型解除规则绑定


    下例为用户定义数据类型 ssn 解除规则绑定。这将为该数据类型的现有列和将来的列解除规则绑定。



    EXEC sp_unbindrule ssn


    C. 使用 futureonly_flag


    下例为用户定义数据类型 ssn 的解除规则绑定,现有的 ssn 列不受影响。



    EXEC sp_unbindrule 'ssn', 'futureonly'


    D. 使用分隔标识符


    下例显示了在 object_name 中定界标识符的使用。



    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'
    相关文章
    本页查看次数: