Поделиться через


sp_unbindrule (Transact-SQL)

Отменяет привязку правила к столбцу или псевдониму типа данных в текущей базе данных.

Важное примечаниеВажно!

В следующей версии Microsoft SQL Server эта возможность будет удалена. Не используйте ее при работе над новыми приложениями и как можно быстрее измените приложения, в которых она в настоящее время используется. Вместо этого рекомендуется создавать определения по умолчанию с помощью ключевого слова DEFAULT в инструкциях ALTER TABLE или CREATE TABLE. Дополнительные сведения см. в разделе Изменение и создание определений DEFAULT.

Значок ссылки на разделСоглашения о синтаксисе языка Transact-SQL

Синтаксис

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

Аргументы

  • [ @objname= ] 'object_name'
    Имя таблицы и тип данных столбца или псевдонима, для которого отменяется привязка правила. Аргумент object_name имеет тип nvarchar(776) и не имеет значения по умолчанию. SQL Server пытается разрешить идентификаторы, состоящие из двух частей, сначала в имена столбцов, а затем в псевдонимы типов данных. При отмене привязки правила к псевдониму типа данных для всех столбцов этого типа данных, имеющих то же самое правило, также отменяется привязка. Столбцы этого типа данных с правилами, которые привязаны непосредственно к ним, не затрагиваются.

    ПримечаниеПримечание

    Аргумент object_name может содержать квадратные скобки [] в качестве символов идентификатора с разделителем. Дополнительные сведения см. в разделе Идентификаторы с разделителями (компонент Database Engine).

  • [ @futureonly= ] 'futureonly_flag'
    Используется только при отмене привязки правила к псевдониму типа данных. Аргумент futureonly_flag имеет тип varchar(15) и значение по умолчанию NULL. Если аргумент futureonly_flag имеет значение futureonly, то существующие столбцы этого типа данных не теряют указанного правила.

Значения кодов возврата

0 (успешное завершение) или 1 (неуспешное завершение)

Замечания

Для отображения текста правила выполните процедуру sp_helptext с именем правила в качестве аргумента.

При отмене привязки правила данные о ней удаляются из таблицы sys.columns, если правило было привязано к столбцу, и из таблицы sys.types, если правило было привязано к псевдониму типа данных.

Если отменяется привязка правила к псевдониму типа данных, то она отменяется и для всех столбцов, имеющих этот псевдоним. Правило может остаться привязанным к столбцами, типы данных которых были когда-то изменены с помощью предложения ALTER COLUMN инструкции ALTER TABLE. Для каждого такого столбца необходимо специально отменить привязку правила с помощью процедуры sp_unbindrule, указав имя столбца.

Разрешения

Чтобы отменить привязку правила к столбцу таблицы, требуется разрешение ALTER на таблицу. Чтобы отменить привязку правила к псевдониму типа данных, требуется разрешение CONTROL для типа или разрешение ALTER для схемы, которой тип принадлежит.

Примеры

А. Отмена привязки правила к столбцу

В следующем примере отменяется привязка правила к столбцу startdate таблицы employees.

EXEC sp_unbindrule 'employees.startdate'

Б. Отмена привязки правила к псевдониму типа данных

В следующем примере отменяется привязка правила к псевдониму типа данных ssn. Отмена производится как для существующих, так и для будущих столбцов этого типа.

EXEC sp_unbindrule ssn

В. Использование аргумента futureonly_flag

В следующем примере отменяется привязка правила к псевдониму типа данных ssn, не затрагивая существующие столбцы типа ssn.

EXEC sp_unbindrule 'ssn', 'futureonly'

Г. Использование идентификаторов с разделителями

В следующем примере показано использование идентификаторов с разделителями в аргументе 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'