Microsoft KB Archive/115075

FIX: SQL Server Fix List for Version 4.20P33

PSS ID Number: Q115075 Article last modified on 10-27-1994

4.20

WINDOWS

The following is a list of fixes and other various improvements that have been made in SQL Server version 4.2P33. SQL Server version 4.2P33 is now available from your primary support provider. For more information, contact your primary support provider.

Please note that workarounds 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 4.20P33: ======================================


 * FIX: Numerous Invalid Logins Cause SQL Server to Hang
 * FIX: Checkpoint Handler GP-Faults With Full Transaction Log
 * PRB: SQL for NT Not Report Time Change Without Restart
 * FIX: Connection Causes Access Violation During CREATE DATABASE
 * FIX: Nested STUFF Functions Return NULL
 * FIX: Updating View Created Using Outer Join Terminates Client
 * FIX: SELECT with More Than 125 SUM Columns Can Trap Server
 * FIX: Arithmetic Overflow When Convert Real Value

=
================================ Description of Problems Corrected in 4.20P33: =============================================

ARTICLE ID: Q104712 BUG# NT: 478 (4.2)

= SYMPTOMS =

If a user repeatedly tries to log into SQL Server with an invalid login id or password, SQL Server may eventually hang. This may also hang existing connections, and any attempts to make a new connection will hang.

In addition, the following will also hang the SQL server:

  Stop SQL Server using either the SQL Service Manager (stoplight applet)   Issuing the command: net stop sqlserver 

= CAUSE =

SQL Server incorrectly handles the cleanup of invalid logins, such that after numerous (generally over 100) invalid login attempts any existing or new connections will hang.

ARTICLE ID: Q104713 BUG# NT: 483 (4.2)

= SYMPTOMS =

If a user-defined transaction is executing, and it causes the SQL Server transaction log to become completely full, you will receive an 1105 error:

Can’t allocate space for object Syslogs in database because the logsegment segment is full. If you ran out of space in Syslogs, dump the transaction log. Otherwise, use ALTER DATABASE or sp_extendsegment to increase the size of the segment. (Msg 1105, Level 17, State 2)

In addition, you may have the following error reported in the SQL Server error log:

Unable to write CHECKPOINT record in database because the log is out of space. checkpoint: Process 2 generated access violation; SQL Server is terminating this process

If you issue a sp_who, there will be no checkpoint handler listed.

= CAUSE =

SQL Server may incorrectly handle the error when the transaction log becomes full during a user-defined transaction.

= WORKAROUND =

To restart the checkpoint handler, stop and restart SQL Server. If this occurs frequently, you should enlarge the size of the transaction log, or increase the frequency of transaction log dumps to prevent the log from filling.

ARTICLE ID: Q107562

If the system time is changed on a Windows NT server, SQL Server for Windows NT will not report the new time as the result of a SELECT GETDATE operation until the SQL Server is stopped and restarted.

This behavior differs from SQL Server for OS/2 which will report the new system time without restarting.

This behavior was changed in SQL Server version 4.2P33 for Windows NT. Starting with 4.2P33, SQL Server will synchronize its time with the system time whenever a user issues a Transact-SQL getdate request.

ARTICLE ID: Q110272 BUG# NT: 510 (4.2)

= SYMPTOMS =

If a user connection to SQL server for Windows NT is performing a DUMP DATABASE and another user connection issues a CREATE DATABASE, the connection doing the CREATE DATABASE will receive an access violation and be disconnected.

ARTICLE ID: Q112690 BUG# NT: 319 (4.2)

= SYMPTOMS =

When you attempt to change several characters in a character string using nested calls to the STUFF Transact-SQL function, NULL is returned instead of the expected character string.

= CAUSE =

The result of nested STUFF functions is NULL.

= WORKAROUND =

A local variable can be used to eliminate the need for nesting calls to STUFF. For example, to change the slash marks in a date to hyphens, the following Transact-SQL statements could be used:

declare @tempvar char(8) select @var = stuff( “01/01/93”,6,1,“-” ) select @var = stuff( @var, 3,1,“-” ) select @var

ARTICLE ID: Q112691 BUG# NT: 495 (4.2)

= SYMPTOMS =

If a view is created by joining two or more tables using outer join, then issuing an UPDATE on the view may terminate the client process.

For example, the following UPDATE command script will cause the problem:

create table testM (m1 varchar(8) null, datam varchar(8) null) create table testC (datac varchar(8) null) go create view testview as select * from testM, testC where testM.datam =* testC.datac go insert testC values (“test”) insert testM values (“hi”,“testo”) go update testview set m1=“help” go

= WORKAROUND =

You may update the base table directly instead of updating the view.

ARTICLE ID: Q112692 BUG# NT: 446 (4.2)

= SYMPTOMS =

A SELECT statement with more than 125 SUM columns of INT NULL will cause the SQL Server client process to get an Access Violation.

= WORKAROUND =

To avoid this problem, you can split the table into multiple tables and do a join, or you can do an inner join on the single table.

ARTICLE ID: Q112693 BUG# NT: 470 (4.2)

= SYMPTOMS =

Using the CONVERT command to convert a valid real value from a column which allows nulls to a varchar or char large enough to hold the value causes arithmetic overflow or returns of zero.

For example, the following script :

create table t1 (col1 float NULL) go insert t1 values (4.5) go select convert( varchar(10), col1) from t1 go

Would generate the following error message:

Msg 232, Level 16, State 2: Arithmetic overflow error for type varchar, value = 0.000000 Arithmetic overflow occurred.

NOTE: This is not a problem when the column does not allow nulls.

= CAUSE =

SQL Server incorrectly handles the conversion of a real column which allows nulls to varchar or char.

= WORKAROUND =

Convert the real value to float or real before converting to varchar or char datatypes.

For the above example, use the following query to generate the correct result:

select convert( varchar(10), convert(float, col1)) from t1

Additional reference words: 4.20 4.20P33 Windows NT KBCategory: kbref kbfixlist KBSubcategory: SSrvServer

=
================================================================

Copyright Microsoft Corporation 1994.