我有数百个由 DataSync 自动生成的程序。
我没有时间和意识手动删除它们。
他们都开始于DataSync.
有没有办法删除名称开头的所有存储过程DataSync.
?
使用 information_schema.routines (这在 RDBMS(例如 MSSQL、Mysql)中是相当标准的):
如果您的进程名称以“DataSync”开头。那么它们可能在一个模式中,所以你可以通过以下方式找到它们:
select
'DROP PROCEDURE [' + routine_schema + '].[' + routine_name + ']'
from
information_schema.routines where routine_schema = 'DataSync' and routine_type = 'PROCEDURE'
如果您的进程名称以“DataSync”开头,那么您可以通过以下方式找到它们:
select
'DROP PROCEDURE [' + routine_schema + '].[' + routine_name + ']'
from
information_schema.routines where routine_name like 'DataSync%' and routine_type = 'PROCEDURE'
如果要执行所有这些 drop 语句,可以使用 FOR XML PATH 构建单个执行,如下所示:
declare @sql varchar(max)
set @sql = (
select
'DROP PROCEDURE [' + routine_schema + '].[' + routine_name + '] '
from
information_schema.routines where routine_schema = 'DataSync' and routine_type = 'PROCEDURE'
FOR XML PATH ('')
)
exec (@sql)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)