SQL-删除特定正则表名的表

在SqlServer中,可以通过正则表达式指定表名,并删除对应的表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

DECLARE @TableName NVARCHAR(255)
DECLARE @Sql NVARCHAR(MAX)

DECLARE TableCursor CURSOR FOR
SELECT
TABLE_NAME
FROM
INFORMATION_SCHEMA.TABLES
WHERE
TABLE_NAME LIKE '%_[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
AND TABLE_TYPE = 'BASE TABLE';

OPEN TableCursor
FETCH NEXT FROM TableCursor INTO @TableName
a
WHILE @@FETCH_STATUS = 0
BEGIN
SET @Sql = 'DROP TABLE ' + QUOTENAME(@TableName)
EXEC sp_executesql @Sql
PRINT 'Deleted table: ' + @TableName

FETCH NEXT FROM TableCursor INTO @TableName
END

CLOSE TableCursor
DEALLOCATE TableCursor