sql - 如果超过一天并且仅当它以某些字符开头时如何删除视图?
问题描述
我想从超过 1 天前创建的服务器中删除所有以“EXAMPLE_VIEW%”开头的视图。我该怎么做呢?
解决方案
sys.views
一种方法是使用您想要的标准从目录视图生成脚本。下面的示例XML PATH
用于字符串连接,因为您使用的是 SQL Server 2016。可以STRING_AGG
在 SQL Server 2017 及更高版本中使用。此示例还包括对dbo
模式的检查,如果需要,您可以对其进行调整。
DECLARE @DropScript nvarchar(MAX) =
STUFF(
(SELECT
N';DROP VIEW ' + QUOTENAME(OBJECT_SCHEMA_NAME(object_id)) + N'.' + QUOTENAME(name)
FROM sys.views
WHERE
name LIKE N'WQB_VIEW%'
AND OBJECT_SCHEMA_NAME(object_id) = N'dbo'
AND create_date < DATEADD(day, -1, GETDATE())
FOR XML PATH(''),TYPE).value('.','nvarchar(MAX)')
,1,1,'');
EXECUTE sp_executesql @DropScript;
推荐阅读
- python - 根据列表pyspark的字符串计算包含子字符串的多列中的值
- mongodb - 使用 MongoDB mongo go 驱动程序进行计数器持久收集
- javascript - 如何在javascript中使用EventListener下拉或隐藏和显示子菜单?
- ios - NSDate 将格式设置为 MM/YYYY 但结果显示 dd/YYYY
- c - c中的openmp并行递归函数
- powershell - 在 PowerShell (Sharepoint Online) 中运行命令后生成 CSV/TXT
- css - 使用具体化 css 在工具提示中显示图像
- jquery - 提交 JQuery 表单发布请求时页面不工作
- sql - psql 中输入的 SQL 命令是属于 SQL(Postgresql 的 SQL 方言)还是 PL/PgSQL?
- launch - 如何在右舷层更改 Cobalt 启动 URL 和参数?