有没有办法删除数据库中的多个对象?我有20个表,40个视图,40个存储过程,20个触发器。
我不想一个一个地删除它们。我一直在命名以_
开头的所有对象,例如_TableName
,_ViewName
,_StoredProcedureName
等
谢谢。
答案 0 :(得分:1)
您可以使用动态SQL和查询catalog views来实现对象(表格,视图,过程等)。然后,您可以构建由drop
分隔的;
语句列表并执行它。
例如,对于删除表格,它将是:
declare @sql nvarchar(max) = N''
select @sql = @sql + N'drop table ' + QUOTENAME(s.name) + N'.' + QUOTENAME(t.name) + N'; '
from sys.tables t
inner join sys.schemas s on t.schema_id = s.schema_id
where left(t.name, 1) = '_'
exec sp_executesql @sql