在 SQL Azure 中删除多个数据库

发布于 2024-11-25 04:21:18 字数 408 浏览 1 评论 0 原文

我想在使用完 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 语句必须是批处理中的唯一语句” 有人可以帮我解决这个问题吗?

I would like to run a script to drop the multiple databases from SQL Azure as soon I finish using it. When I tried as following,

     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 throws error message as “The DROP DATABASE statement must be the only statement in the batch”
Can somebody help me on this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

折戟 2024-12-02 04:21:18

这是 SQL Azure 中的一个已知限制 - 某些语句需要单独成批才能执行。这包括创建/更改数据库、更改数据库等等。

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

This is a known limitation in SQL Azure - certain statements need to be in a batch by themselves to be executed. This includes CREATE/ALTER DATABASE, ALTER DATABASE and a few more.

To solve you problem, you can create a loop in you application where you iterate over all the databases and drop them by issuing DROP DATABASE statements in separate batches.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文