所以我需要定期删除由我们的应用程序中出错的作业孤立的视图,以识别它们我运行以下查询,该查询生成大量带有上述需要删除的视图的DROP VIEW语句。 / p>
SELECT 'DROP VIEW ' + TABLE_NAME
FROM INFORMATION_SCHEMA.VIEWS
WHERE TABLE_NAME LIKE 'SEF_%'
SELECT 'DROP VIEW ' + TABLE_NAME
FROM INFORMATION_SCHEMA.VIEWS
WHERE TABLE_NAME LIKE 'SCF_%'
我的问题是我需要在计划任务上运行那些DROP VIEW语句,因此运行SELECT语句不是问题(因为我可以安排它),但我还需要运行结果查询在一个时间表上。任何帮助将不胜感激。
以下评论中,我忘了提到这是SQL Server 2008 R2 Enterprise。
答案 0 :(得分:0)
您需要将查询结果存储在变量中并执行它。
<强> SqlFiddle 强>
DECLARE @sql NVARCHAR(MAX) = N'';
SELECT @sql = @sql + 'DROP VIEW ' + TABLE_NAME + ';' + CHAR(10) + CHAR(13)
FROM INFORMATION_SCHEMA.VIEWS
WHERE TABLE_NAME LIKE 'SEF_%'
OR TABLE_NAME LIKE 'SCF_%';
/* Debug */
SELECT @sql;
EXEC [dbo].[sp_executesql]
@sql;
为了将来你应该创建视图WITH SCHEMABINDING
并首先强制删除视图然后表。