事情是......
我的sp抛出错误:字符串或二进制数据将被中继。
我使用sql profiler跟踪代码片段以找到它出现的行 我需要获取正在插入的数据。
我添加了将数据插入临时表的代码,并认为我能够 从另一个会话中读取其内容(当该会话仍在进行中时 - 未提交)和......
遗憾的是,即使使用nolock提示,select语句也会挂起...在未提交的隔离级别下。
一般来说,我想获取因错误而回滚的数据。
有可能吗?我该怎么办?
答案 0 :(得分:1)
临时表是会话范围的。如果你在tempdb中检查sys.tables
,你会发现你的#t表实际上就像是
#t__________________________________________________________________________________________________________________000000000006
所以,你无法从另一个会话中读到它。
更重要的是,临时表在回滚交易中无法生存。为了能够在回滚后读取数据,请使用表变量,并在回滚后将其保存到永久表中,您可以查询。