• 转载sql server 关于 default value的一些使用总结


    转载原出处:http://blog.csdn.net/miqi770/article/details/6728733

    1.在创建表的时候,给字段添加的默认值约束

     
    1. CREATE TABLE "dbo"."Test"  
    2. (  
    3.    id int PRIMARY KEY,  
    4.    sex varchar(10) DEFAULT ('boy'),  
    5.    name varchar(40),  
    6.    age int DEFAULT ((1)),  
    7. )  
    CREATE TABLE "dbo"."Test"
    (
       id int PRIMARY KEY,
       sex varchar(10) DEFAULT ('boy'),
       name varchar(40),
       age int DEFAULT ((1)),
    )
    

    注意:

    • 此时默认值约束,没有约束名称。DMBS会自动的给添加一个“默认值约束名称”
    • 注意varchar类型和int类型在DEFAULT 中的写法:分别用‘’和()把value值包起来

    2.在创建表之后,给字段添加的默认值约束

     
    1. alter table [dbo].[Test] add constraint Test_name_Default Default('Tom') for baseCurrencyCode  
    alter table [dbo].[Test] add constraint Test_name_Default Default('Tom') for baseCurrencyCode

    注意:

    • 此时,必须编写一个约束名称,防止重名。

    3.修改字段原有的默认值约束

     
    1. declare @csname varchar(100)  
    2. set @csname''  
    3.   
    4. select @csname=[name]  
    5. from sysobjects   
    6. where id=(select cdefault from syscolumns where id=object_id('Test') and name='age')  
    7.   
    8. exec('alter table [dbo].[Test] drop constraint ' + @csname )  
    9.   
    10. exec('alter table [dbo].[Test] add constraint ' + @csname + ' Default((18)) for age')  
    declare @csname varchar(100)
    set @csname= ''
    
    select @csname=[name]
    from sysobjects 
    where id=(select cdefault from syscolumns where id=object_id('Test') and name='age')
    
    exec('alter table [dbo].[Test] drop constraint ' + @csname )
    
    exec('alter table [dbo].[Test] add constraint ' + @csname + ' Default((18)) for age')

    注意:

    • 默认值约束,不能修改。必须先drop之后再add
    • drop的时候,必须知道当前“默认值约束的名称”。通过上面的sql可以查出Test表的age字段所绑定的“默认值约束名称”,才可以drop
    • 测试的时候发现sqlserver2005的一个bug:默认值的长度大于字段设定的长度时候,同样不报错,可以设置成功!!!在oracle上就会报错,无法设置成功!
  • 相关阅读:
    axios的使用/
    jQuery好玩的双向控制轮播
    vue的路由跳转方式/两种
    vfor的某些注意事项
    vue使用插件时不能撑满页面?
    swiper中的双向控制器不生效问题
    sass的安装及使用
    .net必懂题
    软件架构初读01
    EJB
  • 原文地址:https://www.cnblogs.com/wphl-27/p/3557342.html
Copyright © 2020-2023  润新知