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:
- Right click on table and select
Design
- Select DOC_Order column (or other column needing default) in the table's design view to see properties
- Update
Default Value or Binding
with function name with brackets like so:
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.