FIX: Insert with SUBSTRING Operation Fails if JOIN Comparison is Based on NULL Values and LIKE Clause (278980)



The information in this article applies to:

  • Microsoft SQL Server 7.0

This article was previously published under Q278980
BUG #: 57864 (SQLBUG_70)

SYMPTOMS

If you compare columns in two tables by using the LIKE clause in a Join operation and the data in one of the columns is null, and you then perform an INSERT operation into a table with a SUBSTRING function, an access violation may occur.

The client terminates with the following error message:
ODBC: Msg 0, Level 19, State 1
SqlDumpExceptionHandler: Process 7 generated fatal exception c0000005
EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.
Connection Broken

WORKAROUND

Change the LIKE clause to an equality operator "=" (equal sign).

STATUS

Microsoft has confirmed this to be a problem in SQL Server 7.0. This problem has been corrected in U.S. Service Pack 3 for Microsoft SQL Server 7.0. For more information, click the following article number to view the article in the Microsoft Knowledge Base:

274799 INF: How to Obtain Service Pack 3 for Microsoft SQL Server 7.0 and Microsoft Data Engine (MSDE) 1.0

For more information, contact your primary support provider.

MORE INFORMATION

The stack dump in the errorlog is:
0x00426f15 Module(sqlservr+26f15) (CSsStr::LConvertToStr+2e)
0x00427164 Module(sqlservr+27164) (CTEsConvertToStr::RsltConvertArg+e4)
0x0041228d Module(sqlservr+1228d) (CEs::GeneralEval+c6)
0x004d1029 Module(sqlservr+d1029) (CParamInfo::FUpdate+30)
0x00422805 Module(sqlservr+22805) (CQScanNLJoin::OpenInner+30)
0x00422328 Module(sqlservr+22328) (CQScanNLJoin::GetRow+f8)
0x004cf1c8 Module(sqlservr+cf1c8) (CQScanFilter::GetRow+18)
0x004222fc Module(sqlservr+222fc) (CQScanNLJoin::GetRow+5a)
0x004222fc Module(sqlservr+222fc) (CQScanNLJoin::GetRow+5a)
0x004222fc Module(sqlservr+222fc) (CQScanNLJoin::GetRow+5a)
0x00425331 Module(sqlservr+25331) (CQScanFetch::GetRow+4e)
0x00427740 Module(sqlservr+27740) (CQScanStreamAggregate::GetRow+3c)
0x004cf174 Module(sqlservr+cf174) (CQScanAssert::GetRow+1c)
0x004223a3 Module(sqlservr+223a3) (CQScanNLJoin::GetRow+120)
0x004222fc Module(sqlservr+222fc) (CQScanNLJoin::GetRow+5a)
0x004222fc Module(sqlservr+222fc) (CQScanNLJoin::GetRow+5a)
0x00422dee Module(sqlservr+22dee) (CQScanNLJoin::Open+38)
0x0041d7c6 Module(sqlservr+1d7c6) (CQScan::Open+1b)
0x0041d7c6 Module(sqlservr+1d7c6) (CQScan::Open+1b)
0x0048d529 Module(sqlservr+8d529) (CQScanUpdate::Open+15)
0x00415fc3 Module(sqlservr+15fc3) (CQueryScan::Uncache+156)
0x00415237 Module(sqlservr+15237) (CStmtQuery::FExecuteQuery+298)
0x0040d45e Module(sqlservr+d45e) (CStmtDML::XretExecuteNormal+1a8)
0x0040d30d Module(sqlservr+d30d) (CStmtDML::XretExecute+1b)
0x004145f1 Module(sqlservr+145f1) (CMsqlExecContext::ExecuteStmts+11a)
0x0041409f Module(sqlservr+1409f) (CMsqlExecContext::Execute+16a)
				

Modification Type:MajorLast Reviewed:3/14/2006
Keywords:kbBug kbfix KB278980