删除SQL Server架构

时间:2011-06-22 10:22:31

标签: sql-server database

据我所知,您不能简单地删除SQL服务器架构,首先必须删除其中包含的所有对象。我发现这个stored proc执行删除所有对象然后删除模式的任务。

是否真的没有更简单的方法来删除架构?理想情况下,我想在不使用存储过程的情况下找到一种方法。

此外,如果提供的架构名称不存在,似乎存储过程将导致错误。我希望它完全不做任何事情。我想这只是将这个伪代码放在脚本顶部的问题

IF @SchemaName NOT EXISTS
    QUIT

有人可以将其转换为SQL Server可以理解的语言吗?

4 个答案:

答案 0 :(得分:4)

脚本顶部的以下内容应该有所帮助:

IF SCHEMA_ID(@SchemaName) IS NULL 
    RETURN

SCHEMA_ID返回与架构名称关联的架构ID,RETURN无条件退出查询或过程。

答案 1 :(得分:2)

在删除schame之前必须删除schame中的所有对象,或者将所有对象迁移到新架构。

没有“通配符”选项

在进一步处理之前退出存储过程......

IF SCHEMA_ID(@SchemaName) IS NULL
    RETURN

答案 2 :(得分:0)

if exists(select * from sys.schemas where name = @SchemaName)
begin
    -- Your work
end 

答案 3 :(得分:0)

在删除架构之前,必须删除所有对象。 检查架构是否存在:

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