удалить схему SQL Server - PullRequest
       2

удалить схему SQL Server

4 голосов
/ 22 июня 2011

Я понимаю, что вы не можете просто удалить схему SQL-сервера, вы должны прежде всего удалить все содержащиеся в ней объекты.Я нашел этот сохраненный процесс , который выполняет задачу удаления всех объектов, а затем и самой схемы.

Неужели не существует более простого способа удаления схемы?В идеале я хотел бы найти способ сделать это без использования сохраненного процесса.

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

IF @SchemaName NOT EXISTS
    QUIT

Может кто-то преобразовать это в язык, который SQL Server поймет?

Ответы [ 4 ]

4 голосов
/ 22 июня 2011

Вверху скрипта должно помочь следующее:

IF SCHEMA_ID(@SchemaName) IS NULL 
    RETURN

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

2 голосов
/ 22 июня 2011

Вы должны удалить все объекты в schame перед тем, как отбросить его, или перенести все объекты в новую схему. Для

опция «подстановочный знак» отсутствует

Для выхода из хранимой процедуры перед дальнейшей обработкой ...

IF SCHEMA_ID(@SchemaName) IS NULL
    RETURN
0 голосов
/ 22 июня 2011

Вы должны отбросить все объекты перед удалением схемы. Чтобы проверить, существует ли схема:

IF NOT EXISTS (select SCHEMA_NAME from INFORMATION_SCHEMA.SCHEMATA WHERE CATALOG_NAME='YOUR DB NAME HERE' and SCHEMA_NAME=@SchemaName)
BEGIN
     -- Do some processing...
     return
END
0 голосов
/ 22 июня 2011
if exists(select * from sys.schemas where name = @SchemaName)
begin
    -- Your work
end 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...