FIX: 上带有文本操作的分区视图关联的子查询会导致访问冲突

文章翻译 文章翻译
文章编号: 291274 - 查看本文应用于的产品
错误 #: 352264 (SHILOH_BUGS)
展开全部 | 关闭全部

症状

从选择分区视图,在以下情况下的,可能会出现访问冲突 (AV):
  • 视图中所包含至少一个文本或 ntext 列。
  • 文本函数用于计算在父选择一个文本栏。
  • 文本在行 是表的一个文本列中至少一个启用的并且至少一个其他禁用。
SQL Server 错误日志可能包含与以下内容类似的条目:
CEs::Eval(unsigned long * 0x1af60248, CEsExec * 0x0047004c, CXVariant * 0x115af134) line 778 + 17 bytes
CParamInfo::FUpdate(unsigned long * 0x1af60248) line 130 + 20 bytes
CQScanNLJoin::PpbAddChangedParams(CParamBounds * 0x115af1f4, unsigned long * 0x1af60248, int 0, int * 0x115af180) line 933 + 30 bytes
CQScanNLJoin::RecomputeInner(CParamBounds * 0x115af1f4, unsigned long * 0x1af60248) line 995
CQScanNLJoin::GetRow(unsigned long * 0x1af60248, unsigned long * 0x1af60248) line 1269
CQueryScan::GetRow(unsigned long * 0x1af60248, unsigned long * 0x1af60248) line 4273 + 27 bytes
CStmtQuery::ErsqExecuteQuery(CMsqlExecContext * 0x1af60060 {CMsqlExecContext}, const CEsComp * 0x1b031e68, const CEsComp * 0x00000000, unsigned long * 0x1af60248, int 1, int 0) line 946 + 21 bytes
CStmtSelect::XretExecute(CMsqlExecContext * 0x1af60060 {CMsqlExecContext}) line 3458 + 37 bytes
CMsqlExecContext::ExecuteStmts(ExecutionContext * 0x1aa8d518) line 1483 + 16 bytes
CMsqlExecContext::Execute(CCompPlan * 0x00000000 {CCompPlan}, CParamExchange * 0x00000000) line 1202 + 12 bytes
CSQLSource::Execute(CParamExchange * 0x00000000) line 1246 + 19 bytes
language_exec(srv_proc * 0x1aa90090) line 682
process_commands(srv_proc * 0x1aa90090) line 1704 + 9 bytes
ProcessWorkRequests(UmsWorkQueue * 0x02574b58) line 431 + 13 bytes
ThreadStartRoutine(void * 0x105c1f90) line 263 + 7 bytes
MSVCRT! 7800bea1()
KERNEL32! 77e92ca8()
				

解决方案

若要解决此问题,获得最新的 service pack,对于 SQL Server 2000。有关更多的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
290211INF: 如何获取最新的 SQL Server 2000 Service Pack

状态

Microsoft 已经确认这是 SQL Server 2000 中的问题。此问题 SQL Server 2000 Service Pack 1 中第一次已得到纠正。

更多信息

下面是一个查询,这可能会导致上述错误的一个示例:
SELECT 1
FROM v1
WHERE IntColumn <= ALL
      (
        SELECT v2.IntColumn
         FROM v2
         WHERE SUBSTRING(v1.TextColumn,1,5) < 'a'
      )
				
其中 v1 定义为:
Select * from db1.dbo.t1
UNION ALL
Select * from db2.dbo.t1
				
v2 被定义为:
Select * from db1.dbo.t2
UNION ALL
Select * from db2.dbo.t2
				
t1 包含 1 int 列和 $ 1 文本列,而 t2 包含仅 int 列。

属性

文章编号: 291274 - 最后修改: 2003年11月5日 - 修订: 3.2
这篇文章中的信息适用于:
  • Microsoft SQL Server 2000 标准版
关键字:?
kbmt kbbug kbfix kbsqlserv2000sp1fix KB291274 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 291274
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com