Search code examples
sql-serveruser-defined-functions

Using UDF for default value of a column


I created a UDF that I am using to generate a default value for a column. It works great, but I want to pass another field as a parameter into the function. Is this possible?

For example, one of the fields is a DealerID field, and I want to pass in the value of the DealerID field into my UDF because I will use it to calculate the new value. Any help would be appreciated!


Solution

  • No, because the default value will be needed before DealerID is known (eg on INSERT)

    Edit:

    This means that SQL Server does not know the value in the table at the time of insert, only after. Therefore, it cannot use a UDF for the default.

    For example, what about a multiple row insert, or where you have NEWID() default?

    Now, using logic basic on DealerID: if it's GUID, why? It's an internal, non-user readable value.

    If you really need this, you'll have to use a computed column for the "base" value and another column for the "actual" value with ISNULL.