3

我需要删除名称具有模式“%-%-%-%-%”的所有表。到目前为止,我发现最好的方法是分两步完成:

  1. 通过调用下面的请求生成删除请求

    SELECT ' DROP TABLE ' + REPLACE(TABLE_NAME, '-', NCHAR(8211)) FROM information_schema.tables where TABLE_NAME like '%-%-%-%-%' ORDER BY TABLE_NAME

  2. 运行删除请求。

不幸的是,第 2 步不起作用。即使我REPLACE(TABLE_NAME, '-', NCHAR(8211)),我仍然得到Msg 102, Level 15, State 1, Line 1 Incorrect syntax near '0'.等;0因为删除请求的第一行是DROP TABLE 0df78d48–c718–49be–ab55–5f158ebdd64c–results.

你能帮忙吗?谢谢!

4

1 回答 1

6

在表名周围放置方括号应该会给您想要的结果。

例子:

DROP TABLE [0df78d48–c718–49be–ab55–5f158ebdd64c–results]
于 2013-01-30T12:46:43.987 回答