首页 > 解决方案 > 如何在 Transact-SQL 的一个脚本中在 CREATE DATABASE DBName 之后使用 USE DBName?

问题描述

我正在尝试在 T-SQL 中编写这样的代码

BEGIN TRANSACTION

CREATE DATABASE DBName

USE DBName

BEGIN TRY
    --Some sample query that could go wrong
END TRY
BEGIN CATCH
    ROLLBACK
END CATCH

我遇到了错误

DBName 数据库不存在

此答案建议使用 GO 关键字 (单击此处)

我遇到了错误

'GO' 附近的语法错误

这个答案告诉 GO 不能在 T-SQL 中使用 (点击这里)

我正在使用 C# OleDBConnection 执行 SQL 代码

如果我先单独执行 CREATE DATABASE 然后在单独的文件中执行 USE DBName,它会起作用。

但在这种情况下,ROLLBACK 不会回滚数据库创建命令,我将留下一个空白数据库。这就是为什么我需要在同一个文件中包含 CREATE DATABASE 和 USE DATABASE 命令

如何在 T-SQL 中使用与 GO 关键字等效的内容?

标签: c#sql-servertsqlrollbackoledbconnection

解决方案


自己处理回滚。

  • 首先批量创建数据库
  • 下次在另一批中使用数据库
  • 如果您决定不再需要该数据库
    • 删除数据库

推荐阅读