SQL查询删除具有特定字符串的数据库

时间:2014-11-17 20:17:29

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

我知道在某些情况下已经提出这个问题,但我无法理解他们的工作方式。如果这个问题有很多有用的答案,那么请向我投票,但请在做之前链接相关问题。

我正在尝试编写一个将在批处理文件中运行的查询,以自动删除名称中包含特定字符串的表。例如,当我运行批处理文件时,我希望它查找文件中可能包含ABCDir的表。我尝试过各种各样的方法让它工作但还没有成功。

我知道这与我正在尝试做的很接近。或者我想它可能会离开大声笑。

DECLARE db_cursor CURSOR FOR
DELETE name FROM sys.database
WHERE name LIKE '%ABCDir%'

1 个答案:

答案 0 :(得分:2)

警告这是一种非常危险的做法。考虑重命名表而不是删除。

<强>答案

您必须创建动态SQL作为如何删除表的示例(我无法自己编写DROP DATABASE

Declare @strSQL nVarChar (Max) = ';
'

select @strSQL = @strSQL  + 'Drop Table ' + T.TABLE_SCHEMA + '.'+ TABLE_NAME + ';
'
From INFORMATION_SCHEMA.TABLES   T
Where Table_Name Like '%ABC1234%'

Print @strSQL
Exec Sp_ExecuteSQL @strSQL
相关问题