c# - 如何在 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 关键字等效的内容?
解决方案
自己处理回滚。
- 首先批量创建数据库
- 下次在另一批中使用数据库
- 如果您决定不再需要该数据库
- 删除数据库
推荐阅读
- symfony - Symfony 在具有 ManyToMany 关系的两个表之间具有相同的 @groups
- android - 在按钮单击时自动在表单中添加行项目,然后保存数据
- sql - 仅通过触发器对插入的行运行更新语句
- angular - 将 AWS MediaLive 与 Angular 结合使用
- java - AnyLogic - selectOutput5 中最后一个出口端口的自定义条件
- javascript - 在 React 中让异步钩子相互等待
- java - 构造函数声明后构造函数对象发生变化
- python - 无论如何,是否可以将在 vscode 中调试的 jupyter notebook 中的 ipython matplotlib 图形渲染为 py 文件?
- sql - 另一个字段中包含的属性值的 SQL 连接
- python-3.x - 在 Jupyter 笔记本中显示 HTML 后隐藏空格