Bind a column default value to a function in SQL 2005

后端 未结 3 473
青春惊慌失措
青春惊慌失措 2020-12-06 16:51

I have a column containing items that can be sorted by the user:

DOC_ID  DOC_Order DOC_Name
   1       1        aaa
   2       3        bbb
   3       2              


        
相关标签:
3条回答
  • 2020-12-06 17:26

    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.

    0 讨论(0)
  • 2020-12-06 17:34

    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
    
    0 讨论(0)
  • 2020-12-06 17:41

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

    1. Right click on table and select Design

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

    1. 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).

    0 讨论(0)
提交回复
热议问题