我们如何在与其他查询的事务中创建 VIEW?

Posted

技术标签:

【中文标题】我们如何在与其他查询的事务中创建 VIEW?【英文标题】:How can we create a VIEW in transaction with other queries? 【发布时间】:2011-11-06 06:55:45 【问题描述】:

我有一个查询生成器,我需要检查视图是否存在并重新创建它。另外我想在创建视图之前创建一个表。如何在事务中完成这些工作。

注意:create view 必须是批处理中的第一条语句。

【问题讨论】:

【参考方案1】:

用GO分隔你的语句

begin transaction    

create table xx ....

go

create view v_xx
as 
....

go

commit transaction

【讨论】:

我在我的 c# 代码中运行这个查询。我在 GO 之后添加了 \n\r 但这对我不起作用。 @masoud - SQL Server 不理解GO,它只是在某些工具中用作批处理分隔符。您可以删除GO 语句并改用EXEC('create view v_xx') @masoudramezani,很高兴看到你成功了。您的另一个选择是从您的 C# 代码控制事务并一次执行一批。在异常处理程序中完成提交或回滚,以防出现问题。

以上是关于我们如何在与其他查询的事务中创建 VIEW?的主要内容,如果未能解决你的问题,请参考以下文章

在与shell脚本相同的目录中创建文件夹[重复]

从多个表中创建 Sql Server VIEW GROUPing BY,选择子查询作为别名

如何在 berkelydb java edition db base api 中创建日志文件

为啥 SELECT 在 SQL Server 中创建未提交的事务?

如何在没有任何视图或任何其他表类型的情况下在 oracle 中创建具有动态列名和动态数据类型的动态表

在与位于项目目录中的 .jar 文件相同的文件夹中创建一个文件