如何在 Transact-SQL 的一个脚本中在 CREATE DATABASE DBName 之后使用 USE DBName?

How to use USE DBName after CREATE DATABASE DBName in one script in Transact-SQL?

我正在尝试在 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 Database doesnt exist

此答案建议使用 GO 关键字 (Click Here)

我遇到了错误

Syntax error near 'GO'

这个答案告诉我们 GO 不能用在 T-SQL (Click Here)

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

如果我先单独执行 CREATE DATABASE 然后在单独的文件中执行 USE DBName 就可以了。

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

如何在 T-SQL 中使用相当于 GO 关键字的东西?

自行处理回滚。

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