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


sp_unbindrule (Transact-SQL)

Область применения: SQL Server

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

Внимание

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

Соглашения о синтаксисе Transact-SQL

Синтаксис

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

Аргументы

[ @objname = ] N'objname'

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

Примечание.

@objname может содержать скобки в виде символов [] идентификатора с разделителями. Дополнительные сведения см. в разделе "Идентификаторы базы данных".

[ @futureonly = ] 'futureonly'

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

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

0 (успешно) или 1 (сбой).

Замечания

Чтобы отобразить текст правила, выполните sp_helptext команду с именем правила в качестве параметра.

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

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

Разрешения

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

Примеры

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

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

EXEC sp_unbindrule 'employees.startdate';

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

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

EXEC sp_unbindrule ssn;

В. Использование 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';