Создание схемы

Синтаксис команды:

CREATE XMLSCHEMA Expression

Expression – строка, представляющая собой схему документа. Это может быть строковый литерал или переменная строкового типа.

Команды изменения схемы нет: повторное создание схемы с тем же именем приводит к замещению схемы, что, как мне кажется, не очень правильно.

Выше уже приводились примеры использования этой команды.

Удаление схемы

Синтаксис команды удаления схемы:

DROP XMLSCHEMA {NAMESPACE TargetNamespace }

Удалить можно только ту схему, с которой еще не связан ни один столбец в таблицах данной базы. К сожалению, если такая связь есть, команда не удаляет схему и не выдает никаких сообщений об ошибках. Кроме этого, на данный момент нет механизмов определения, с какими полями таблиц связана данная схема, так что удалить схему практически невозможно (по крайней мере, мне не удалось удалить ни одну из ранее созданных схем!).:(

Вот такая команда должна была бы удалить схему my-first-schema:

drop xmlschema namespace 'my-first-schema'

Ограничения текущей реализации

К сожалению, на данный момент аннотации, примечания и ограничения (unique, key и keyref) не сохраняются в метаданных базы. Кроме того, атрибут id в схеме не поддерживается.

Полностью список ограничений можно найти в MSDN.

Безопасность

По умолчанию права на создание схемы имеет только пользователь в роли db_owner. Если вы хотите наделить обычного пользователя правами на создание схемы в данной базе, необходимо воспользоваться следующей командой:

{ GRANT | DENY | REVOKE } CREATE XML SCHEMA TO <User or Group>

Здесь User or Group – имя пользователя или группы в базе.

Например, следующий код создает логин, пользователя в базе и дает ему право на создание схем XML-документов:

--создание логинаcreate login test with password ='t', default_database = test --создание пользователяcreate user test_user for login test --разрешение создавать схемы документовgrant create xml schema to test_user

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: