FIX: Inserting NULL into NOT NULL Column May Cause AV

ID: Q122574


The information in this article applies to:
  • Microsoft SQL Server version 4.2x

BUG# NT: 904 (4.21a)

SYMPTOMS

When you try to insert a NULL into a NOT NULL column inside a trigger, an access violation may occur under certain situations. For example, consider the following INSERT statement to be executed inside a trigger:


   insert mytable select (select NULL) 

The first time this trigger is fired, it causes error 515 (as expected):
Attempt to insert the value NULL into column '%.*s', table '%.*s';
column does not allow NULLS. Update fails

If the trigger is fired again, an access violation may occur.



NOTE: This problem occurs only if you are trying to insert NULLs into a column that does not allow NULLs. A trigger should not be designed to perform an invalid operation.


WORKAROUND

There are two ways to avoid this problem:

  • Redesign the trigger so that it does not insert NULLs into a column that does not allow NULLs.


  • Remove the extra SELECT statement. For example:
    
          insert mytable select (NULL)
     



STATUS

Microsoft has confirmed this to be a problem in Microsoft SQL Server version 4.21a. This problem was corrected in SQL Server version 6.0. For more information, contact your primary support provider.

Additional query words: sql6 Windows NT

Keywords : kbother kbprg SSrvProg SSrvTran_SQL kbbug4.21a kbfix6.00
Version : 4.21 6.0
Platform : WINDOWS
Issue type :


Last Reviewed: April 21, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.