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


ALTER SCHEMA (Transact-SQL)

Передача защищаемых сущностей между схемами.

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

Синтаксис

ALTER SCHEMA schema_name TRANSFER securable_name

Аргументы

  • schema_name
    Имя схемы в текущей базе данных, в которую будет перемещена защищаемая сущность. Не может иметь значение SYS или INFORMATION_SCHEMA.
  • securable_name
    Одно- или двусоставное имя содержащейся в схеме защищаемой сущности, которая должна быть перемещена в другую схему.

Замечания

В SQL Server 2005 пользователи и схемы полностью разделены. Дополнительные сведения см. в разделе Отделение пользователей от схем.

Инструкция ALTER SCHEMA применяется только для перемещения защищаемых сущностей между схемами в пределах одной базы данных. Для изменения или удаления защищаемой сущности в схеме используйте инструкцию ALTER или DROP, специфичную для этой сущности.

Если для аргумента securable_name используется одночастное имя, для поиска защищаемой сущности будут использоваться текущие правила разрешения имен.

Все разрешения, связанные с защищаемой сущностью, при перемещении в другую схему будут удалены. Если владелец защищаемой сущности был явно указан, он не изменится. Если для владельца защищаемой схемы было установлено значение SCHEMA OWNER, то владельцем останется SCHEMA OWNER. Однако после перемещения SCHEMA OWNER будет относиться к владельцу новой схемы. Значение principal_id нового владельца будет равно NULL.

ms173423.Caution(ru-ru,SQL.90).gifВнимание!
В SQL Server 2005 поведение схем отличается от более ранних версий SQL Server. Код, где предполагается, что схемы эквивалентны пользователям базы данных, может возвращать неверные результаты. Старые представления каталога содержат таблицу sysobjects, которая не может быть использована в базе данных, в которой когда-либо выполнялась любая из следующих инструкций DDL: CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, CREATE ROLE, ALTER ROLE, DROP ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER AUTHORIZATION. В базе данных, где была выполнена любая из этих инструкций, необходимо использовать новые представления каталога. Новые представления каталога учитывают разделение участников и схем, появившееся в SQL Server 2005. Дополнительные сведения о представлениях каталога см. в разделе Представления каталога (Transact-SQL).

Разрешения

Для перемещения защищаемой сущности из другой схемы текущий пользователь должен иметь разрешения CONTROL на эту сущность (а не на схему) и разрешения ALTER на целевую схему.

Если защищаемая сущность имеет спецификацию EXECUTE AS OWNER, а ее владельцем является SCHEMA OWNER, у пользователя также должно быть разрешение IMPERSONATION на владельца целевой схемы.

Все разрешения, связанные с перемещаемой защищаемой сущностью, при перемещении удаляются.

Примеры

Следующий пример изменяет схему HumanResources, перемещая таблицу Address из схемы Person в схему.

USE AdventureWorks;
GO
ALTER SCHEMA HumanResources TRANSFER Person.Address;
GO

См. также

Справочник

CREATE SCHEMA (Transact-SQL)
DROP SCHEMA (Transact-SQL)
EVENTDATA (Transact-SQL)

Другие ресурсы

Отделение пользователей от схем

Справка и поддержка

Получение помощи по SQL Server 2005