Microsoft KB Archive/151052

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

Article ID: 151052

Article Last Modified on 3/14/2005

-

APPLIES TO


 * Microsoft SQL Server 6.0 Standard Edition
 * Microsoft SQL Server 6.5 Standard Edition

-



This article was previously published under Q151052



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.



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: kbbug KB151052

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.