sp_unbindrule (Transact-SQL)
Отменяет привязку правила к столбцу или псевдониму типа данных в текущей базе данных.
Важно! |
---|
В следующей версии Microsoft SQL Server этот компонент будет удален. Не используйте его при работе над новыми приложениями и как можно быстрее измените приложения, в которых он в настоящее время используется. Вместо этого рекомендуется создавать определения по умолчанию с помощью ключевого слова DEFAULT в инструкциях ALTER TABLE или CREATE TABLE. |
Применимо для следующих объектов: SQL Server (начиная с SQL Server 2008 до текущей версии). |
Cинтаксические обозначения в Transact-SQL
Синтаксис
sp_unbindrule [ @objname = ] 'object_name'
[ , [ @futureonly = ] 'futureonly_flag' ]
Аргументы
[ @objname= ] 'object_name'
Имя таблицы и столбца или псевдоним типа данных, для которого отменяется привязка правила. Аргумент object_name имеет тип nvarchar(776) и не имеет значения по умолчанию. SQL Server пытается вычислить по идентификаторам, состоящим из двух частей, сначала имена столбцов, а затем псевдонимы типов данных. При отмене привязки правила к псевдониму типа данных для всех столбцов этого типа данных, имеющих то же самое правило, также отменяется привязка. Столбцы этого типа данных с правилами, которые привязаны непосредственно к ним, не затрагиваются.Примечание
Аргумент object_name может содержать квадратные скобки [] в качестве символов идентификатора с разделителем.Дополнительные сведения см. в разделе Идентификаторы баз данных.
[ @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';
См. также
Справочник
Системные хранимые процедуры (Transact-SQL)