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

    从当前数据库中删除一个或多个用户定义的默认值。



    DROP DEFAULT 语句不适用于 DEFAULT 约束。有关除去 DEFAULT 约束(通过使用 CREATE TABLE 或 ALTER TABLE 语句的 DEFAULT 选项所创建)的更多信息,请参见本卷中的"ALTER TABLE"。



    语法


    DROP DEFAULT { default } [ ,...n ]



    参数


    default



    是现有默认值的名称。若要查看现有默认值的列表,请执行 sp_help。默认值必须符合标识符规则。有关更多信息,请参见使用标识符。可以选择是否指定默认值所有者名称。



    n



    是表示可以指定多个默认值的占位符。



    注释


    除去默认之前,通过执行 sp_unbindefault 解除绑定默认值(如果默认值当前绑定到列或用户定义的数据类型)。



    从允许空值的列中除去默认值后,当添加行且没有显式提供值时,将在那个位置插入 NULL。从 NOT NULL 列中除去默认值后,当添加行且没有显式提供值时,将返回错误信息。这些行以后作为标准 INSERT 语句行为的一部分添加。



    权限


    默认情况下,将 DROP DEFAULT 权限授予默认值所有者,该权限不可转让。然而,db_owner db_ddladmin 固定数据库角色成员以及 sysadmin 固定服务器角色成员可以通过在 DROP DEFAULT 中指定所有者除去任何默认对象。



    示例


    A. 除去默认值


    如果默认值没有绑定到列或用户定义的数据类型,可以很容易地使用 DROP DEFAULT 将其除去。下例删除用户创建的名为 datedflt 的默认值。



    USE pubs
    IF EXISTS (SELECT name FROM sysobjects
          WHERE name = 'datedflt'
            AND type = 'D')
      DROP DEFAULT datedflt
    GO


    B. 除去绑定到列的默认值


    下例解除绑定与 authors 表的 phone 列关联的默认值,然后除去名为 phonedflt 的默认值。



    USE pubs
    IF EXISTS (SELECT name FROM sysobjects
          WHERE name = 'phonedflt'
            AND type = 'D')
      BEGIN
        EXEC sp_unbindefault 'authors.phone'
        DROP DEFAULT phonedflt
      END
    GO
    相关文章
    本页查看次数: