点击此处---> 群内免费提供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
巴特,
thx进行澄清。 关于KBA,如今,我们始终使用"永久表"解决方案。 这导致临时数据有很多"真实"表。 那就是我测试此功能的主要原因。 我希望这个CR会在下一个版本中发布。
Greetz
Pieter
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,带有临时表
亲切的问候
巴特
一周热门 更多>