删除SQl Azure中的多个数据库

时间:2011-07-21 09:37:37

标签: sql azure-sql-database

我想运行一个脚本,一旦我完成使用它就从SQL Azure中删除多个数据库。当我尝试以下时,

     DECLARE  @dbname varchar(100);
     DECLARE  @stmt nvarchar(3000);
     SET  @dbname = '6A732E0B';

     SELECT @stmt = (SELECT 'DROP DATABASE [' + name + ']; ' FROM sys.databases
     WHERE name LIKE '%' +@dbname +'%');
     EXEC sp_executesql @stmt;

SQL Azure将错误消息抛出为“DROP DATABASE语句必须是批处理中的唯一语句” 有人可以帮我吗?

2 个答案:

答案 0 :(得分:1)

这是SQL Azure中的一个已知限制 - 某些语句需要自行批处理才能执行。这包括CREATE / ALTER DATABASE,ALTER DATABASE等等。

要解决您的问题,您可以在应用程序中创建一个循环,在该循环中迭代所有数据库并通过在不同批次中发出DROP DATABASE语句来删除它们。

答案 1 :(得分:0)