Bind a column default value to a function in SQL 2005

The syntax to add a default like that would be

alter table DOC_Order 
add constraint 
df_DOC_Order 
default([dbo].[NEWDOC_Order]())
for DOC_Order

Also, you might want to alter your function to handle when DOC_Order is null

Create FUNCTION [dbo].[NEWDOC_Order] 
(
)
RETURNS int
AS
BEGIN

RETURN (SELECT ISNULL(MAX(DOC_ORDER),0) + 1 FROM DOC_Documents)

END

Here's screen shots to do it through SQL Server Management Studio GUI:

  1. Right click on table and select Design

enter image description here

  1. Select DOC_Order column (or other column needing default) in the table's design view to see properties

enter image description here

  1. Update Default Value or Binding with function name with brackets like so:

enter image description here

Note: as Luk stated, all brackets are needed including the schema (dbo in this case).


IF someone wants to do it using the interface, typing

[dbo].[NEWDOC_Order]()

does the trick. You apparently need all brackets or it will reject your input.