我想运行一个脚本,一旦我完成使用它就从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语句必须是批处理中的唯一语句” 有人可以帮我吗?
答案 0 :(得分:1)
这是SQL Azure中的一个已知限制 - 某些语句需要自行批处理才能执行。这包括CREATE / ALTER DATABASE,ALTER DATABASE等等。
要解决您的问题,您可以在应用程序中创建一个循环,在该循环中迭代所有数据库并通过在不同批次中发出DROP DATABASE语句来删除它们。
答案 1 :(得分:0)