ASE功能:"启用选择导入"

2020-09-24 08:38发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我在ASE中遇到了这个新...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我在ASE中遇到了这个新功能:"启用tran中选择"。 更多信息:在多语句交易中使用选择

我使用存储过程(在ASE 16 SP03 PL03上)对此进行了测试,但是没有运气...

 exec sp_configure"启用tran中的选择",1
 走
 创建过程lsp_test_tran
 如
 开始
     从master..sysmessages选择*进入#t
 结束
 走
 开始翻译
 exec lsp_test_tran
 回滚
 去

这是输出:

> [错误]脚本行:11-14 ------------------------
  " tempdb"数据库中的多语句事务中不允许使用" CREATE TABLE"命令。
  讯息:2762,等级:16,状态:3
  服务器:LISSTAT,过程:lsp_test_tran,行:4 
2条回答
悠然的二货
2020-09-24 09:44

Hi Pieter

从昨天起我的答案有所更改。 碰巧的是,我碰巧在SP02 ASE上进行了测试,该ASE进行了必要的配置更改,才能完成这项工作。

进一步了解这一点,SP02和SP03之间的行为没有差异。

这里的关键是,您的示例需要运行'ddl in tran'数据库选项集。 我的SP02 ASE碰巧已打开,而SP03却没有(在tran中ddl默认为OFF)。

如您的示例在#temp表中进行选择,则tempdb中的'ddl in tran'必须为ON。

如果要在常规表中使用select,则将在其中创建该表的数据库需要'ddl in tran'。 当然,它也需要"选择进入"(在tempdb上默认为"打开")

因此,对此进行更改,您的示例将起作用:

使用master
go
sp_dboption tempdb," ddl in tran"," true"
go

关于277的评论保持不变:

运行您的repro步骤,我还看到返回错误277:

消息277,级别16,状态1:服务器'WIN16',过程'lsp_test_tran',第4行:
退出存储过程'lsp_test_tran'时有一个事务处于活动状态。 临时表'#t'在此事务中已显式或隐式删除。 该事务已中止以防止数据库损坏。 EXECUTE之后的事务计数表明缺少COMMIT或ROLLBACK TRAN。 上一个计数= 1,当前计数= 0。

有一个打开的功能来请求禁止显示此277消息。 高宝(KBA)需要澄清一下,我也将对此进行解释。

KBA 2507907-消息2762,级别16,状态3,带有临时表

亲切的问候

巴特

一周热门 更多>