FIX: SQL Server 6.0 Service Pack 3 FixlistLast reviewed: November 7, 1997Article ID: Q152616 |
The information in this article applies to:
The following is a list of fixes and various other improvements that have been made in the Microsoft SQL Server version 6.0 Service Pack 3. Service Pack 3 is now available from your primary support provider. For more information, contact your primary support provider. Service Pack 3 includes all fixes previously released in Service Packs 1 and 2 for version 6.0. The list of fixes for Service Packs 1 and 2 are appended at the end of this article. Please note that workarounds described have been provided for your information only. It is not necessary to implement these workarounds if you have the updated software.
LIST OF PROBLEMS CORRECTED IN SERVICE PACK 3
DB-Library ComponentsQ151301: FIX: dbcursorfetchex() Can Cause Blocking in DB-Library Q152063: FIX: DB-Lib Unable to Handle Burst of TDS Packets Under TCP/IP
Replication ComponentsQ150258 FIX: Long Database Names Can Cause AV in the Distribution Task
Server ComponentsQ136531: FIX: SELECT INTO From a ALTERed TABLE Cannot be Performed Q139620: FIX: @@IDENTITY in Nested Stored Procedure Returns NULL Q140265: FIX: CREATE INDEX Aborts with Error 1509 or 632 Q140332: FIX: Remote Backups and xp_loginconfig Fail With Access Denied Q148324: FIX: DECLARE CURSOR on View with DISTINCT Causes AV Q146637: FIX: DATALENGTH Function Returns 0 on 256 Byte Text Parameter Q147177: FIX: Complex T-SQL Batch May Hang During Query Plan Generation Q147414: FIX: Unhandled Exception When Running DBCC Checkdb Q149934: FIX: AV on FETCH From Updatable CURSOR Using VIEW Q152627: FIX: SELECT from Multiple Unjoined Tables Can Cause AV Q148219: FIX: Inconsistent Behavior with Global Temporary Tables Q148267: FIX: Correlated Subquery Nested 3+ Levels May Give Error 403 Q150955: FIX: Client Terminated on Repeated Unsuccessful Obj Resolution Q150988: FIX: Extraneous Locks During UPDATE on Table w/ > 15 Indexes Q152046: FIX: DBCC Traceon(3604,4031) Causes Unhandled Access Violation Q149174: FIX: Correlated Subquery on Datetime Col May Cause Client AV Q149917: FIX: 16933 Error on View Updated Through Server Cursor Q150936: FIX: Stored Proc Can Fail w/ Msg 1203 Using READ UNCOMMITTED Q151590: FIX: Error 4409 Generated When Using Multiple Database Views Q152414: FIX: Compatible Tape Drives May Not Read SQL Server Dumps Q152415: FIX: sp_processmail Gets Ambiguous Recipient Error Q149243: FIX: Insert/Select/(NOLOCK) w/ Rollback May Cause Error 3307 Q149711: FIX: Insert View with DEFAULT VALUES Causes AV Q149932: FIX: 3307 Lock Error on INSERT SELECT UNION Abort w/ Dup Key Q149938: FIX: AV on INSERT of UNIONed SELECTs to Table With DEFAULTs Q150882: FIX: Possible Handled AV w/ Sub-query Using NOT IN and '>' Q151408: FIX: Query w/ Group by All Can Take Too Long to Complete Q151605: FIX: Grant or Revoke Statements Fail When Used in an SP Q152214: FIX: UPDATE Using Aggregate and Arithmetic Operator Causes AV Q152264: FIX: Five-way Table Join w/OR May Cause Handled Exception Q152615: FIX: Syntax Error in SELECT List May Cause Handled AV Q151583: FIX: Select Using 'or' From View Defined w/ '>=' Can Cause AV Q151681: FIX: SELECT with CASE Can Cause Parser Error 403 Q152263: FIX: Query with Join in Subselect May Cause Handled Exception Q152800: FIX: GROUP BY Clause without Index Executes More Slowly
Q151301: dbcursorfetchex() Can Cause Blocking in DB-LibraryBUG#: 15039
SYMPTOMSIf a DB-library application calls dbcursorfetch() or dbcursorfetchex() successfully in one thread, subsequent calls to dbcursoropen() or dbclose() from other threads using the same DBPROCESS would be blocked. Sp_who and sp_lock show no blockage on the server side, and the DB-library application would appear to hang.
WORKAROUNDUse a separate DBPROCESS for each thread.
Q152063: BUG: DB-Lib Unable to Handle Burst of TDS Packets Under TCP/IPBUG# NT: 15078
SYMPTOMSUnder TCP/IP socket Net-Library, a DB-Library (DB-Lib) application may not be able to handle a large number of TDS packets that are sent back to the client very quickly. As a result, the following error occurs, which also breaks the connection:
DB-Library: Possible network error: Read from SQL Server failed. Net-Library error 0: (null) WORKAROUNDThis problem only occurs under TCP/IP; therefore, you may want to use other IPCs (such as named pipes, IPX/SPX, or RPC) instead. Also, reducing the window size on the client side TCP/IP can make the problem less likely to occur.
Q150258: BUG: Long Database Names Can Cause AV in the Distribution TaskBUG#: 13530
SYMPTOMSLong published and subscribed database names can cause an access violation (AV) failure of the distribution task with the following error reported in the Event Log:
Event ID 212; Source: SQLExecutive; Category: Task Engine Event <task id> - <dist task name> caused an exception violation in the Distribution subsystem, and has been terminated.The Task History for the distribution task will report "Failure" with no message explanation and the task will no longer be Active.
WORKAROUNDAvoid using long names for published and subscribed databases. To avoid this particular problem, a database name of no longer than 10 characters is recommended for both the published and subscribed database.
Q136531: FIX: SELECT INTO From a ALTERed TABLE Cannot be PerformedBUG# NT: 10972
SYMPTOMSOn Microsoft SQL Server version 6.0, you can not perform a SELECT INTO from a table that has been ALTERed to add an IDENTITY column. A SELECT INTO will fail with the following error message:
Msg 511, Level 16, State 2 Updated or inserted row is bigger than maximum size (10 bytes) allowed for this table. WORKAROUNDInstead of performing an ALTER TABLE to add the IDENTITY column, CREATE a TABLE with the identity column and then transfer the data to the new table with an INSERT operation.
Q139620: FIX: @@IDENTITY in Nested Stored Procedure Returns NULLBUG# NT: 11897
SYMPTOMSThe @@identity global variable will be NULL under the following conditions:
WORKAROUNDDo not query the @@identity global variable from more than one stored procedure nesting level. For example, modify the "add_test1" stored procedure (from example in the following MORE INFORMATION section) to the following code and it works properly:
CREATE PROCEDURE add_test1 AS EXECUTE add_test2 EXECUTE add_test2 RETURN GO Q140265: FIX: CREATE INDEX Aborts with Error 1509 or 632BUG# NT: 12183
SYMPTOMSWhen you attempt to create an index on a table, the command may abort with one of the following two possible errors:
Msg 1509, Level 20, State 3: Row compare failure Error: 632, Severity: 20, State: 1 Memmove() was called with a length of %d - maximum allowed length is 2048.NOTE: This problem only occurs under rare conditions, appears to be extremely data and hardware sensitive, and is not likely to occur with most CREATE INDEX statements.
WORKAROUNDIncrease the "sort pages" configuration parameter from the default of 64 to a higher number using the sp_configure system stored procedure. In most cases, increasing this parameter from the default of 64 to 128 will allow the index to be created; however, it can be increased to a maximum of 511 if necessary. NOTE: Before modifying the number of sort pages, you need to issue the command:
sp_configure 'allow updates', 1along with a corresponding:
sp_configure 'allow updates', 0at the end of the process.
Q140332: FIX: Remote Backups and xp_loginconfig Fail With Access DeniedBUG# NT: 12222
SYMPTOMSDatabase dumps to remote devices and the xp_loginconfig extended stored procedure can fail with access denied errors if Microsoft SQL Server is using Per Seat licensing mode. For database dumps, the client will get a 3201 error and the Windows NT Application log of the computer SQL Server is running on will contain the following event:
Event ID: 17055 Type: Error Source: MSSQLServer Category: Kernel User: could be any user connected to SQL Server Description: Mesg 18204: dbswritecheck: Backup device '<device path and file>' failed to open, operating system error=5(Access is denied.)When running xp_loginconfig, the query will return the message:
Unable to query SQL Server security information. WORKAROUNDSwitch the SQL Server security mode to mixed or integrated security.
Q148324: FIX: DECLARE CURSOR on View with DISTINCT Causes AVBUG# NT: 11550
SYMPTOMSWhen you declare a cursor on a view with DISTINCT, the operation will cause a handled access violation (AV) resulting in the client process being terminated. The same behavior can occur in both Transact-SQL and in applications written to use server cursors. The behavior only occurs if the table has a unique index.
WORKAROUNDRewrite the query so that you are using DISTINCT in the cursor declaration rather than in the view declaration. Another possibility is to drop the unique index on the table if it is not being used for integrity constraints. DB-Library and ODBC applications can also use their respective cursor libraries.
Q146637: FIX: DATALENGTH Function Returns 0 on 256 Byte Text ParameterBUG# NT: 13179
SYMPTOMSIf a text value of length 256 bytes is passed to a stored procedure as a parameter and in the stored procedure the DATALENGTH function is used to check the length of the parameter, it will return 0 instead of 256. If the text parameter's length is either greater than 256 or less than 256, the DATALENGTH function will return the correct length.
Q147177: FIX: Complex T-SQL Batch May Hang During Query Plan GenerationBUG# NT: 13132
SYMPTOMSThe complex transact-SQL batch hangs when executed in SET NOEXEC ON mode. The transact-SQL query batch has two inserts with a co-related update statement. Execution with SET NOEXEC ON causes the connection to be stranded with CPU utilization at 100 percent. Execution with SET NOEXEC OFF causes the connection and locks to be stranded with CPU utilization at 100 percent.
WORKAROUNDBreak the transact-SQL batch into smaller components. You can do this by adding "Go" between the transact-SQL statements.
Q147414: FIX: Unhandled Exception When Running DBCC CheckdbBUG# NT: 13125
SYMPTOMSWhen running DBCC CHECKDB or CHECKTABLE, SQL Server may encounter an unhandled exception. The last message in the errorlog prior to the exception will be the following:
96/01/25 15:34:31.63 kernel upinit: warning, unable to raise priority of dbcc-worker threadIf you are running Service Pack 2, the above message will be followed by:
96/01/25 15:34:31.72 kernel upinit(dbcc-worker) failed: error code: 0x5 (5(Access is denied.)) MORE INFORMATIONThis problem will only occur if SQL Server is running in Per Seat licensing mode and is configured to use standard security, and even under these conditions, it is rare.
WORKAROUNDYou can work around this problem by doing one of the following:
Q149934: FIX: AV on FETCH From Updatable CURSOR Using VIEWBUG#: 12627
SYMPTOMSFetching from multiple updatable cursors using VIEWs of the same underlying table can get a handled exception.
WORKAROUNDUse cursors against the direct tables instead of views.
Q152627: FIX: SELECT from Multiple Unjoined Tables Can Cause AVBUG#: 13087
SYMPTOMSA SELECT from multiple base tables with no join clauses may cause a handled Access Violation in Microsoft SQL Server 6.0
WORKAROUNDSimplifying the SELECT statement or restricting the number of rows or tables in the query will avoid the Access Violation.
Q148219: FIX: Inconsistent Behavior with Global Temporary TablesBUG# NT: 13490
SYMPTOMSGlobal temporary tables exhibit inconsistent IF EXISTS behavior from multiple connections. The conditional check for table (with IF EXISTS) may return FALSE even if the global temp table exists. Create table statements executed after this will return the following error message:
Msg 2714, Level 16, State 1 There is already an object named '##tablename' in the database. Q148267: FIX: Correlated Subquery Nested 3+ Levels May Give Error 403BUG# NT: 13721
SYMPTOMSA correlated subquery nested to three levels or more may give the following error message:
Msg 403, Level 16, State 1 Invalid operator for datatype op: UNKNOWN TOKEN type: char WORKAROUNDSplit the query so that the nesting level is less than three.
Q150955: FIX: Client Terminated on Repeated Unsuccessful Obj ResolutionBUG#: 13393
SYMPTOMSDuring object resolution, the server terminates the client process if the object resolution is not successful for five consecutive attempts. This applies only to version 6.0 Service Pack 2. The problem characteristics are completely different on SQL Server version 6.0 without any Service Packs installed. Please see the following Knowledge Base article for details:
ARTICLE-ID: Q134659 TITLE: FIX: Unexpected Behavior During Object Resolution WORKAROUNDEnsure that all the views have proper base tables. Alternately, drop and recreate the views whenever the base tables are dropped.
Q150988: FIX: Extraneous Locks During UPDATE on Table w/ > 15 IndexesBUG#: 13626
SYMPTOMSRunning an UPDATE on a table results in more EX_PAGE locks when the table contains more than 15 indexes, even when the column being updated is not a part of any index. The same set of statements uses a smaller number of locks if there are 15 or fewer indexes on the updated table.
Q152046: FIX: DBCC Traceon(3604,4031) Causes Unhandled Access ViolationBUG#: 13262
SYMPTOMSUsing the combination of trace flags 3604 (Sends trace output to the client) and 4031 (Prints both a byte and ASCII representation of the send buffers) can crash the server with an unhandled access violation. For example: dbcc traceon(3604) go dbcc traceon(4031) go
WORKAROUNDUse send trace output to the Errorlog file: dbcc traceon(3605) go dbcc traceon(4031) go
Q149174: FIX: Correlated Subquery on Datetime Col May Cause Client AVBUG#: 14267
SYMPTOMSThe client thread may access violate if it has the datetime column in correlation, and multiple conditions in the WHERE clause of the correlated subquery and the main outer query.
WORKAROUNDSplit the query into multiple queries by using intermediate temporary tables.
Q149917: FIX: 16933 Error on View Updated Through Server CursorBUG#: 13762
SYMPTOMSApplications attempting to update a view through SQL Server server cursors will receive the following error even if the operation observes the SQL Server requirement that updates through views only update a single base table:
Msg 16933, Level 16, State 2 The cursor does not include the table being modified. WORKAROUNDOpen the cursor with a select against the base tables instead of the view. Alternatively, open a second connection and issue an SQL update command based on key values through the second connection.
Q150396: FIX: Stored Proc Can Fail w/ Msg 1203 Using READ UNCOMMITTEDBUG#: 14238
SYMPTOMSIf a stored procedure is executed after setting the TRANSACTION ISOLATION LEVEL to READ UNCOMMITTED, the procedure can fail with the following error:
Error : 1203, Severity: 20, State: 2 Caller of lock manager is incorrectly trying to unlock an unlocked object. spid=<n> locktype=4 dbid=<n> lockid=<n> MORE INFORMATIONThis problem occurs if a stored procedure plan is reused in cache that was compiled when the user was not using READ UNCOMMITTED. If a new plan is used to execute the procedure with READ UNCOMMITTED, the problem does not occur.
WORKAROUNDUse the locking hint keyword NOLOCK in the SELECT statement instead of SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED. - OR - Recompile the stored procedure so it does not use the existing plan in cache that was not executed with READ UNCOMMITTED. This can be accomplished in several different ways, including EXEC WITH RECOMPILE, drop/recreate the stored procedure, or restarting SQL Server. Just retrying the operation will not avoid the problem unless the existing plan is flushed from cache. This can be determined by using DBCC MEMUSAGE.
Q151590: FIX: Error 4409 Generated When Using Multiple Database ViewsBUG#: 14645
SYMPTOMSUnder certain conditions, you may receive 4409 errors.
MORE INFORMATIONThe problem arises when the first view in the chain of views can be executed but subsequent views are unavailable for use. For example: If you have viewA and viewC in the master database and viewB in the pubs database, where viewA selects * from viewB and viewB selects * from viewC and viewC selects * from sysdatabases. And, SQL Server has been stopped while a client continues to try to execute a select * from viewA. When SQL Server is restarted, the master database is always recovered first and then the subsequent databases. As soon as master is recovered, the client attempts to execute the select and receives the 4409 error because pubs has not yet been recovered. The same behavior can occur when you take a database on and offline, or you try to drop and create viewC in the above scenario while someone is trying to access it.
WORKAROUNDDrop and add the views when you are sure no one is accessing them.
Q152414: FIX: Compatible Tape Drives May Not Read SQL Server DumpsBUG#: 13749 | 13753
SYMPTOMSA SQL Server tape dump may not be usable on a similar tape drive if the two tape drives do not support the same tape marking mechanisms.
MORE INFORMATIONBy default, SQL Server checks for tape marks using the following algorithm:
WORKAROUNDStarting with Service Pack 3, SQL Server now contains the trace flag 3206 that will reverse the SQL Server tape mark algorithm to the following:
SYMPTOMSThe system stored procedure sp_processmail can fail to reply to a message sent to the server if the sender uses an ambiguous e-mail address.
WORKAROUNDMake sure that there are no ambiguous e-mail addresses.
MORE INFORMATIONHere is an example of this problem: Suppose there are the following two email addresses, "SQL" and "SQLSERVER." If e-mail user "SQL" sends a message to a SQL Server that has sp_processmail running, SQL Server will receive the message, but SQL Server fails in sending a reply because the intended recipient's address is ambiguous. The address is ambiguous because e-mail address resolution says that both "SQL" and "SQLSERVER" are possibilities for the address "SQL." Here is the updated documentation of xp_readmail from the SQL Server 6.5 documentation:
Syntax xp_readmail ([@msg_id = msg_id] [, @type = type [OUTPUT]] [, @peek = {'true' | 'false'}] [, @suppress_attach = {'true' | 'false'}] [, @originator = @sender OUTPUT] [, @subject = @subject_line OUTPUT] [, @message = @body_of_message OUTPUT] [, @recipients = @recipient_list OUTPUT] [, @cc_list = @cc_list OUTPUT] [, @bcc_list = @bcc_list OUTPUT] [, @date_received = @date OUTPUT] [, @unread = {'true' | 'false'} OUTPUT] [, @attachments = @temp_file_paths OUTPUT]) [, @skip_bytes = @bytes_to_skip OUTPUT] [, @msg_length = @length_in_bytes OUTPUT] [, @originator_address = @originator_address OUTPUT]) where @originator_address Specifies the resolved mail address of the originator of the mail message. The @originator_address variable must be varchar(255).If the sp_processmail stored procedure is modified to perform the xp_sendmail back to the value of the @originator_address instead of the @originator, sp_processmail will not fail because of an ambiguous recipient. For additional syntax information for xp_readmail see the Microsoft SQL Server Transact-SQL Reference.
Q149711: FIX: Insert View with DEFAULT VALUES Causes AVBUG#: 12923
SYMPTOMSAn insert performed on a view with the option DEFAULT VALUES can result in a thread level Access Violation. The following provides an example where the Access Violation would occur:
CREATE TABLE ta (col1 CHAR(1) NULL DEFAULT 'a') GO CREATE VIEW vi AS SELECT * FROM ta GO INSERT INTO vi DEFAULT VALUES GO WORKAROUNDPerform the insert with the option DEFAULT VALUES on the base table rather than through the view.
Q149932: FIX: 3307 Lock Error on INSERT SELECT UNION Abort w/ Dup KeyBUG#: 14745
SYMPTOMSAn INSERT into a table with a UNIQUE CLUSTERED INDEX can fail with fatal error 3307:
Process X was expected to hold logical lock on page Y. Error while undoing log row in database 'pubs'. Rid pageid is 0xZ and row num is 0xZZ. The SQL Server is terminating this process. MORE INFORMATIONIf the insert is from UNIONed SELECT statements and there are duplicate keys (but not rows) generated such that the INSERT should fail, the 3307 error can be raised if the level of data reaches a certain threshold, somewhere around 1000 rows depending on row size.
WORKAROUNDThe INSERT would otherwise fail with a non-fatal 2601 "Attempt to insert duplicate keys" error. The INDEX can be changed to use the IGNORE_DUP_KEY option so that the 2601 error is not raised.
Q149938: FIX: AV on INSERT of UNIONed SELECTs to Table With DEFAULTsBUG#: 14833
SYMPTOMSINSERTing to a table from a UNION of two or more SELECT statements can result in a handled Access Violation.
MORE INFORMATIONAt a certain threshold of data, a work table needs to be created to resolve the UNION correctly. If the target table has DEFAULTs, these are not applied to intermediate work tables but other attributes of the target table, such as NOT NULL, are applied, and this would cause the query to fail with a different error if there was not the AV.
WORKAROUNDImplement the INSERT as distinct INSERT SELECTs for each table in the UNION. If there is a UNIQUE INDEX on the target table, use the IGNORE_DUP_KEY option on that INDEX to filter out duplicate rows that would previously have been filtered out by the UNION. In many cases, this method can be much faster anyway because it can eliminate one or more intermedate work tables.
Q150882: FIX: Possible Handled AV w/ Sub-query Using NOT IN and '>'BUG#: 12628
SYMPTOMSIt is possible to experience a handled access violation (AV) when using an IN condition with a sub-query.
WORKAROUNDThere are two possible means to workaround this problem. The first is to drop the current index and create either a unique clustered or non- clustered index. Or you can use the convert() function to step-up the column referenced in the sub-query to the same size as the column referenced on the left of the IN condition. An example of this 'step-up' would be to change the query to the following: select a from test1 where a not in (select convert(char(2),c) from test2 where b = '1') and a <= '1'
Q151408: FIX: Query w/ Group by All Can Take Too Long to CompleteBUG# 12809
SYMPTOMSThe time a query takes to produce output can be too long when using join(s) between two or more tables and a GROUP BY ALL. The scan count and physical IO count are extremely high. The tables involved in the join have lots of duplicate data in the column involved and does not have any indexes. Testing has shown that the situation under which this problem has been encountered is narrow in scope, and the problem can be reproduced only with the provided replication data.
WORKAROUNDReduce the duplicates and create appropriate index(s) to reduce the amount of time to produce the output.
Q151605: FIX: Grant or Revoke Statements Fail When Used in an SPBUG#: 13040
SYMPTOMSA GRANT or REVOKE statement can report the following error when used within the context of a stored procedure. The error is encountered when you attempt to create an object and then grant permission within the same procedure.
Msg 267, Level 16, State 1 Object 'xxx' cannot be found. WORKAROUNDUse the EXECUTE statement to complete the operation. For example: create procedure dbo.spTest @strNewName varchar(8) as select * into pubs.dbo.tblTest from master..sysusers grant select on pubs.dbo.tblTest to PUBLICgo can be changed to: create procedure dbo.spTest @strNewName varchar(8) as select * into pubs.dbo.tblTest from master..sysusers execute('grant select on pubs.dbo.tblTest to PUBLIC')go
Q152214: FIX: UPDATE Using Aggregate and Arithmetic Operator Causes AVBUG#: 15062
SYMPTOMSIn an UPDATE statement within a stored procedure, if a subquery is used to set the value of a column and includes one or more aggregate functions with arithmetic operations, and the arithmetic operation references a column, then a handled thread level access violation may occur.
WORKAROUNDOne workaround is to run the UPDATE statement outside of a stored procedure. Otherwise, break up the query and assign the result of the subselect to a variable, and then use the variable in the UPDATE statement.
Q152264: FIX: Five-way Table Join w/OR May Cause Handled ExceptionBUG#: 15089
SYMPTOMSA five-way (or more) table join with a search clause introduced by an OR clause may cause handled exception which terminates the client thread.
WORKAROUNDRewrite the query such that the rows not in the join qualify for the query because of the OR clause.
Q152615: FIX: Syntax Error in SELECT List May Cause Handled AVBUG#: 15027
SYMPTOMSThe absence of a comma between columns in the SELECT list may cause a handled AV under some narrow circumstances.
WORKAROUNDAdd the comma to the SELECT clause.
Q149243: FIX: Insert/Select/(NOLOCK) w/ Rollback May Cause Error 3307BUG#: 13733
SYMPTOMSIf 'Insert table select * from table (NOLOCK) is called within a transaction, and this transaction is rolled back afterwards, error 3307 might be seen on both the client side and the SQL Server errorlog:
Process %d was expected to hold logical lock on page %d. Error while undoing log row in database '%s'. Rid pageid is %d and row number is %d. The SQL Server is terminating this process' MORE INFORMATIONLimited testing has shown that the situation under which this problem has been encountered is narrow in scope, and the following conditions must be met:
The page number contained in error 3307 is always the leaf level page of the nonclustered index.
WORKAROUND
Q151583: FIX: Select Using 'or' From View Defined w/ '>=' Can Cause AVBUG#: 13873
SYMPTOMSA select using 'or' in the where clause on a view that is defined using a '>=' (greater than or equal to) comparison operator in the where clause canresult in an a Thread Level Handled AV (Access Violation). The AV occurs during the process of determining the cost of a particular access plan that might be used to fulfill the requested select statement.
WORKAROUNDChanging the information available prior to SQL Server's evaluation of the query cost can be used to workaround this problem. Removing 'or' from the where clause as defined in the view, changing the type of comparison operator used in the view where clause, changing the index on the base table to 'clustered not unique', changing the columns being referenced by select on the view, and/or removing the 'or' found in the select where clause can all affect the occurrence of this problem.
Q151681: FIX: SELECT with CASE Can Cause Parser Error 403BUG#: 13817
SYMPTOMSA SELECT statement against multiple tables that includes a CASE expression can result in parser error 403:
Invalid operator for datatype op: UNKNOWN TOKEN type: charTo reproduce this problem, the tables should have at least two columns of datatype CHAR, and three tables must be involved in the SELECT statement. Also, a join must be specified between two of these tables.
WORKAROUNDAvoid using the CASE expression by rewriting the query using the IF..ELSE conditional Transact-SQL statement.
Q152263: FIX: Query with Join in Subselect May Cause Handled ExceptionBUG#: 13120
SYMPTOMSA query with a subselect that contains a join may cause a handled exception that terminates the client connection.
WORKAROUNDRewrite the query, possibly using a normal join instead of the subselect.
Q152800: FIX: GROUP BY Clause without Index Executes More SlowlyBUG#: 14825
SYMPTOMSIf a Transact-SQL query contains a GROUP BY clause and an index is not defined on the column involved in GROUP BY, the query exhibits better performance when executed on the SQL server with no service packs or service pack 1, as opposed to SQL Servers with service pack 2 installed. This performance anomaly is exhibited only on the Alpha platform.
WORKAROUNDSort the columns in the GROUP BY clause. Alternately, define an index encompassing the columns involved in the GROUP BY clause and make sure the index is used when grouping the columns in the query.
ADDENDUM: LIST OF PROBLEMS CORRECTED IN SERVICE PACK 1For the complete description of these bugs, please see the Microsoft Knowledge Base article Q136575.
ADDENDUM: LIST OF PROBLEMS CORRECTED IN SERVICE PACK 2For the complete description of these bugs, please see the Microsoft Knowledge Base article Q138399.
|
Additional query words: sp3 database patch service pack
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |