BUG: SEM Scripts Are Null for Niladic Functs. Used as Defaults

ID: Q151052


The information in this article applies to:

BUG#: 14949 (6.00)

SYMPTOMS

An insert to a table that has niladic functions as defaults will put null for the default if the field accepts null, instead of inserting the system generated default value.


CAUSE

This problem occurs only if the table is created using Manage Tables and the script is generated and run using Enterprise Manager.


WORKAROUND

Remove the appended null before running the script.


STATUS

Microsoft has confirmed this to be a problem in Microsoft SQL Server versions 6.0 and 6.5. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.


MORE INFORMATION

If the Manage Tables feature is used to create the table with the niladic function as default and an insert is performed, it works and the default is fired. However, if the script for this table is created and run, then the same insert operation will fail to fire the default and put (null) for the column that had the default.

In the case of an upgrade from version 6.0 to 6.5, even if tables are not recreated, but due to the procedure plan for default being recreated, niladic function will start returning NULL. To work around this, edit syscomments to remove the NULL from the functions.

If a column is defined as not null and has a default of a niladic function (say user_name() ) on a 6.0 database and its upgraded to 6.5, default will try to insert null into the column resulting in following error:

515 : Attempt to insert the value NULL into column '%.*s', table'%.*s'; column does not allow nulls. %s fails.

Additional query words: sem sql6


Keywords          : kbtool SSrvAdmin SSrvEntMan kbbug6.50 kbbug6.00 
Version           : 6.0 6.5
Platform          : WINDOWS 
Issue type        : 

Last Reviewed: March 26, 1999