FIX: SQL Server FixList for Version 4.21Article ID: Q115402
The following is a list of fixes and other various improvements that have been made in SQL Server version 4.21. SQL Server version 4.21 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.21
Description of Problems Corrected in 4.21
SYMPTOMS
SQL Server connection timed out subsequent calls to dbcancel() return FAIL and result in multiple 10024 errors. The current command batch is not canceled and calls to dbsqlexec() will fail with error 10038: Attempt to Initiate a New SQL Server operation with results pending. CAUSE When a query times out due to certain locking conditions, SQL Server may be unable to respond to the attention signal sent by dbcancel(). When the locks that caused the original query to timeout are freed, dbcancel() can be executed successfully, and subsequent calls to dbsqlexec() will not generate 10038 errors. WORKAROUND
FIX: RETURN Statement After an RPC Causes Extra Result Set
SYMPTOMS
For example, executing the following stored procedure replicates the above problem: create proc rpcproc as execute <remote machine>...sp_who return go execute rpcproc go WORKAROUND Modify the stored procedure, if possible, to avoid the explicit return statement following the call to execute the remote procedure. Another workaround is to make sure your front-end application is handling the extra result set properly. One recommened way of doing this is to execute the call to dbresults in a WHILE loop until it returns NO_MORE_RESULTS. SQL for NT Admin Backup Event
SYMPTOMS
WORKAROUND To work around the above error of start time being out of range, enter the single digit time with a zero in the prefix. For example, instead of entering 8:15, enter start time of 08:15. Another work around is to use the 32-bit version of SQL Administrator on Windows NT which does not show this behavior. FIX: sp_password Does Not Validate Old Password
SYMPTOMS
Password has been changed. CAUSE The sa user is the only login allowed to specify a login parameter with sp_password. In this case, the documentation states that sp_password will validate the old password if it is given, and reject it if wrong. sp_password is issuing the error message, but not stopping the password change. This applies only to sa, as that is the only login capable of changing the password for another login. All other logins can only change their own password, and in this case the password validation is operating correctly. WORKAROUND
sp_password oldpassword, newpassword When executed this way, sp_password does validate the old password.
FIX: Trusted RPCs Do Not Work with Different Passwords
SYMPTOMS
Msg 7221, Level 14, State 2: Login to site "<remote server>" failed. This happens only if the password for the local account is different from the password on the mapped account on the remote machine.
WORKAROUND
FIX: Error 816 When Many Updates Performed
SYMPTOMS
Process %d tried to remove a buffer resource lock %S_BUF that it does not hold in SDES %S_SDES. The SQL Server is terminating this process. The following warnings will also be received: pss found with open sdes process being freed while holding Dataserver semaphore In some cases, after cycling SQL Server, any attempt to create or drop a table in the database will result in a 816 error and be disconnected.
CAUSE
WORKAROUND
FIX: Tape Dump's Date Is 0th Day of the Month
SYMPTOMS
WORKAROUND
FIX: Monthly Scheduled Backup Skips Alternate Months
SYMPTOMS
CAUSE
WORKAROUND
On SQL Server for Windows NT: use master go drop proc sp_MSbackup_now go create procedure sp_MSbackup_now as declare @now datetime, @dayofweek smallint, @hour smallint, @minute smallint, @elapsed int, @monthyear varchar(30) set nocount on /* */ /* Get the current date and time. */ /* Parse out the relevant parts of the date */ /* */ select @now = getdate() select @dayofweek = datepart(weekday,@now) select @monthyear = substring(convert(varchar(12),getdate()),1,12) /* */ /* Create temporary table that holds data on what needs to be dumped */ /* */ create table #spdumptab ( id int Not Null, /* Unique identifier */ name varchar(30) Not Null, /* Name of database to be dumped */ owner varchar(30) Not Null, /* Name of the database owner */ ddump varchar(30) Null, /* Database dump device */ ldump varchar(30) Null, /* Log dump device */ datacntrltype smallint Null, /* Control type */ logcntrltype smallint Null, /* Control type */ status tinyint Null /* extra dump parameters */ ) /* */ /* Check all the databases that are dumped daily, weekly, & biweekly */ /* Note: The dump can only occur if the start time(HH:MM) is > the last dump <= now */ /* */ insert into #spdumptab select Event_id, Database_name, Database_owner,Database_dump,Log_dump,NULL,NULL,Stat from MSscheduled_backups where Enabled = 1 /* Dump turned on */ and ((convert(smallint,Day) = @dayofweek) or Frequency = 1) /* Dump to day or Daily */ and Frequency <= 14 /* Freq daily, weekly, or biweekly */ and datediff(day, Last_dump, @now) >= convert(smallint,Frequency) /* Freq time has elapsed */ and @now >= convert(datetime, @monthyear + Start_time) and datediff(hour, Last_dump, @now) >= convert(smallint,Frequency)*24 /* Freq time has elapsed */ and datediff(minute, Last_dump, @now) >= convert(smallint,Frequency)*24*60 /* Freq time has elapsed */ /* */ /* Check all the databases that are dumped monthly */ /* NOTE: First we get this week number, then do the same criteria as the Daily, weekly, bi-weekly dump. The dump can only occur if the start time(HH:MM) is > the last dump <= now */ /* */ declare @rundate datetime, @weekno smallint /* Get this week number */ select @rundate = @now select @weekno = 1 while datepart(month,dateadd(day,-7,@rundate)) = datepart(month,@now) begin select @weekno = @weekno + 1 select @rundate = dateadd(day,-7,@rundate) end insert into #spdumptab select Event_id, Database_name, Database_owner,Database_dump,Log_dump,NULL,NULL,Stat from MSscheduled_backups where Enabled = 1 /* Dump turned on */ and (convert(smallint,Day) = @dayofweek) /* Dump today */ and Frequency >= 31 /* Freq monthly */ and (convert(smallint,Frequency) - 30) = @weekno /* Week of month */ and datediff(day, Last_dump, @now) >= 28 /* Freq time has elapsed */ and @now >= convert(datetime, @monthyear + Start_time) and datediff(hour, Last_dump, @now) >= convert(smallint,28)*24 /* Freq time has elapsed */ and datediff(minute, Last_dump, @now) >= convert(smallint,28)*24*60 /* Freq time has elapsed */ update #spdumptab set datacntrltype = (select cntrltype from master..sysdevices s where #spdumptab.ddump = s.name) update #spdumptab set logcntrltype = (select cntrltype from master..sysdevices s where #spdumptab.ldump = s.name) set nocount off /* */ /* Output the values to the daemon */ /* */ select id = id, name = name, owner = owner, ddump = ddump, ldump = ldump,dcntrl = datacntrltype, lcntrl = logcntrltype, stat = status from #spdumptab
FIX: Float Data May Cause Data-Conversion Overflow in ISQL/w
SYMPTOMS
SELECT 0.0006 Will generate -------------------- * (1 row(s) affected) DB-Library: Data-conversion resulted in overflow. This is caused by the inherent loss of precision incurred when representing float data. Certain floating point values will be converted into wide character strings which cannot be displayed by ISQL/w 0.0006 but will be converted to the following string 6.000000000000001e-004.
WORKAROUND
FIX: Dump File Archive Attribute Not Set if Previously Cleared
SYMPTOMS
Example: Each day the log is dumped to disk then an automated tape backup program dumps to tape. Since many backup programs rely on the archive bit, any log dump after the first never gets saved to tape, then the disk file is overwritten by the next dump. The behavior is the same on both the NTFS and FAT file systems. NOTE: SQL Server for OS/2 properly resets the archive attribute on existing dump files. WORKAROUND
attrib +a filename where filename is the name of the disk dump file. Another option is to completely delete the existing disk dump file before doing another dump. If the file does not exist, it will be created with the archive attribute set. FIX: Server Must Be Cycled After sp_renamedb
SYMPTOMS
USE <DATABASE> and the command, SELECT db_name() is executed, the old name will be returned. Error messages mentioning the database name will also refer to the old rather than the new name.
WORKAROUND
FIX: PATINDEX on CONVERT May Cause GP Fault
SYMPTOMS
WORKAROUND
FIX: Heavy RPCs Under Stress May Cause Access Violations
SYMPTOMS
WORKAROUND
FIX: Kill Then Net Session Loss Can Make Access Vio., Err 611
SYMPTOMS
WORKAROUND
FIX: sp_lock Does Not Indicate Blocking Lock
SYMPTOMS
Ex_table-blk WORKAROUND You can use the BLK column of sp_who to see what connection you are blocked on. FIX: Syntax Error in CREATE PROC May Cause Dropped Connection
SYMPTOMS
Msg 213, Level 16, State 4 Insert error: column name or number of supplied values does not match table definition. Msg 1203, Level 20, State 1 Caller of lock manager is incorrectly trying to unlock an unlocked object. spid=5 locktype=6 dbid=2 lockid=50. The SQL Server is terminating this process. The first error is expected, but the connection should not be dropped. This problem is seen in a CREATE PROC statement that creates a temporary table and then attempts to insert a record into the temporary table, but does not specify the correct syntax on the insert. For example: create proc testproc as create table #testtab(pub_id char(4), pub_name varchar(40), city varchar(20), state char(2)) insert #testtab select pub_id, pub_name, state from publishers go In the Event viewer, the 1203 lock manager error is followed by: Msg 17655, Pss found with open sdes ... Msg 17306, Process being freed while holding Dataserver Semaphore WORKAROUND Connect to SQL Server and correct the syntax error, then re-issue the CREATE PROC statement. FIX: Loading Tape Dump From SQL Admin May Fail
SYMPTOMS
Backup/Restore has ended in error However, the restore seems to run as expected. The tape is unloaded and you are prompted to remove the tape. The rest of the restore process, initialization and recovery, seems to run the normal amount of time. Then, when you would expect the message box to appear indicating that the load was complete, you will receive an error message indicating the load failed. This problem does not occur with SQL Server for OS/2. CAUSE
WORKAROUND
FIX: Object Manager Fails if SA's Default DB is Not Master
SYMPTOMS
The following objects were not created. Sql Object Manager will not run against this server if the SA's default database is not master.
CAUSE
At the end of the script, it checks to see if the new objects exist in master.dbo.sysobjects and removes the stored procedure 'sp_MSOM_version' so that the SQL Object Manager tool cannot connect to SQL Server afterwards.
WORKAROUND
'sp_defaultdb sa, master', then run the script OBJECT2.SQL. After it is done, you can change the default database back to the user database. Or add 'use master go' at the beginning of OBJECT2.SQL. |
Additional query words:
Keywords : SSrvGen SSrvWinNT kbfixlist
Version : 4.21
Platform : WINDOWS
Issue type : kbref
THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.
©1997 Microsoft Corporation. All rights reserved. Legal Notices.