我知道你不能简单地删除一个SQL服务器模式,你必须首先删除其中包含的所有对象。我找到了这个存储过程来执行删除所有对象和模式本身的任务。
真的没有更简单的方法来删除模式吗?理想情况下,我希望找到一种不使用存储过程的方法来实现这一点。
此外,如果提供的模式名称不存在,看起来存储过程会导致错误。我希望它只是什么都不做。我猜这只是在脚本顶部放置这个伪代码的问题。
IF @SchemaName NOT EXISTS
QUIT
有人能把这个转换成SQL Server可以理解的语言吗?
我知道你不能简单地删除一个SQL服务器模式,你必须首先删除其中包含的所有对象。我找到了这个存储过程来执行删除所有对象和模式本身的任务。
真的没有更简单的方法来删除模式吗?理想情况下,我希望找到一种不使用存储过程的方法来实现这一点。
此外,如果提供的模式名称不存在,看起来存储过程会导致错误。我希望它只是什么都不做。我猜这只是在脚本顶部放置这个伪代码的问题。
IF @SchemaName NOT EXISTS
QUIT
有人能把这个转换成SQL Server可以理解的语言吗?
在删除模式之前,您必须删除所有对象,或将所有对象迁移到新模式。两者都没有“通配符”选项。
要在任何进一步处理之前退出存储过程...
IF SCHEMA_ID(@SchemaName) IS NULL
RETURN
if exists(select * from sys.schemas where name = @SchemaName)
begin
-- Your work
end
在删除模式之前,必须删除所有对象。 要检查模式是否存在:
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