从SQL Server数据库中删除多个对象

时间:2014-08-25 03:03:30

标签: sql sql-server sql-server-2008

有没有办法删除数据库中的多个对象?我有20个表,40个视图,40个存储过程,20个触发器。

我不想一个一个地删除它们。我一直在命名以_开头的所有对象,例如_TableName_ViewName_StoredProcedureName

谢谢。

1 个答案:

答案 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