FIX: SQL Server Fix List for Version 4.20P33
  
PSS ID Number: Q115075
Article last modified on 10-27-1994
 
4.20
 
WINDOWS
 

----------------------------------------------------------------------
The information in this article applies to:
 
  - Microsoft SQL Server version 4.2
----------------------------------------------------------------------
 
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:
=============================================
 
-----------------------------------------------------
FIX: Numerous Invalid Logins Cause SQL Server to Hang
-----------------------------------------------------
 
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.
 
-----------------------------------------------------------
FIX: Checkpoint Handler GP-Faults With Full Transaction Log
-----------------------------------------------------------
 
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 <db name>
   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 <db id> 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.
 
------------------------------------------------------
PRB: SQL for NT Not Report Time Change Without Restart
------------------------------------------------------
 
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.
 
--------------------------------------------------------------
FIX: Connection Causes Access Violation During CREATE DATABASE
--------------------------------------------------------------
 
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.
 
-----------------------------------------
FIX: Nested STUFF() Functions Return NULL
-----------------------------------------
 
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
 
-------------------------------------------------------------
FIX: Updating View Created Using Outer Join Terminates Client
-------------------------------------------------------------
 
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.
 
----------------------------------------------------------
FIX: SELECT with More Than 125 SUM Columns Can Trap Server
----------------------------------------------------------
 
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.
 
   Example
   -------
   select sum(c2), sum(c3), sum(c4), ...  sum(c124), sum(c125), sum(c126)
   from t1
   group by c1
 
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.
 
------------------------------------------------
FIX: Arithmetic Overflow When Convert Real Value
------------------------------------------------
 
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.
