据我所知,您不能简单地删除SQL服务器架构,首先必须删除其中包含的所有对象。我发现这个stored proc执行删除所有对象然后删除模式的任务。
是否真的没有更简单的方法来删除架构?理想情况下,我想在不使用存储过程的情况下找到一种方法。
此外,如果提供的架构名称不存在,似乎存储过程将导致错误。我希望它完全不做任何事情。我想这只是将这个伪代码放在脚本顶部的问题
IF @SchemaName NOT EXISTS
QUIT
有人可以将其转换为SQL Server可以理解的语言吗?
答案 0 :(得分:4)
答案 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