BUG: SEM Scripts Are Null for Niladic Functs. Used as DefaultsID: Q151052
|
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.
This problem occurs only if the table is created using Manage Tables and the script is generated and run using Enterprise Manager.
Remove the appended null before running the script.
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.
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