Отбросьте несколько баз данных в SQl Azure - PullRequest
0 голосов
/ 21 июля 2011

Я хотел бы запустить скрипт для удаления нескольких баз данных из 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 ]

1 голос
/ 29 ноября 2011

Это известное ограничение в SQL Azure - некоторые операторы должны быть в пакете для выполнения. Это включает в себя CREATE / ALTER DATABASE, ALTER DATABASE и еще несколько.

Чтобы решить вашу проблему, вы можете создать цикл в вашем приложении, где вы будете перебирать все базы данных и удалять их, выполняя инструкции DROP DATABASE отдельными пакетами.

0 голосов
/ 15 августа 2011

Я считаю, что это ошибка SQL Azure.Я недавно сообщил об этом в Microsoft: https://connect.microsoft.com/SQLServer/feedback/details/684160/sp-executesql-the-drop-database-statement-must-be-the-only-statement-in-the-batch

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...