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';