您的位置:68399皇家赌场 > 虚拟主机 > SQLServer之修改DEFAULT约束

SQLServer之修改DEFAULT约束

发布时间:2019-07-21 15:13编辑:虚拟主机浏览(198)

    行使SSMS数据库管理工科具修改DEFAULT约束

    1、连接数据库、选择数据表-》右键点击-》选取设计。

    澳门皇家赌场55533网址 1

    2、在表设计器窗口-》选中要修改的数据列-》在列属性中找到暗中认可值绑定-》进行修改。

    澳门皇家赌场55533网址 2

    3、点击保存(恐怕ctrl s)-》关闭表设计器-》刷新表-》重新张开表设计器查看。

    澳门皇家赌场55533网址 3

    创设表时加上默许约束

    第一判别表是不是选在,如若存在则先删除表再增多,假若海市蜃楼则一贯抬高。

    语法:

    --创造新表时增加暗中同意约束
    --数据库注解
    use 数据库名
    go
    --借使表已存在则先删除表再次创下立,假使表空中楼阁则平素开立
    if exists(select * from sysobjects where name=表名 and type ='U')
    drop table 表名;
    go
    --建表语法申明
    create table 表名
    (
    --字段注解
    列名 列类型 identity(1,1) not null,
    列名 列类型) null,
    列名 列类型 null,
    列名 列类型 null,
    列名 列类型,
    列名 列类型 constraint 约束名 default 默认值,
    primary key clustered(列名 asc) with(ignore_dup_key=off) on [primary] --主键索引评释
    )on [primary]

    --字段注释评释
    exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'列说明' , @level0type=N'SCHEMA',
    @level0name=N'dbo', @level1type=N'TABLE',@level1name=N'表名', @level2type=N'COLUMN',@level2name=N'列名';

    exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'列说明' , @level0type=N'SCHEMA',
    @level0name=N'dbo', @level1type=N'TABLE',@level1name=N'表名', @level2type=N'COLUMN',@level2name=N'列名';

    exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'列说明' , @level0type=N'SCHEMA',
    @level0name=N'dbo', @level1type=N'TABLE',@level1name=N'表名', @level2type=N'COLUMN',@level2name=N'列名';

    exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'列说明' , @level0type=N'SCHEMA',
    @level0name=N'dbo', @level1type=N'TABLE',@level1name=N'表名', @level2type=N'COLUMN',@level2name=N'列名';

    exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'列说明' , @level0type=N'SCHEMA',
    @level0name=N'dbo', @level1type=N'TABLE',@level1name=N'表名', @level2type=N'COLUMN',@level2name=N'列名';

    go

    示例:

    --创建新表时增加默许约束
    --数据库证明
    use testss
    go
    --假若表已存在则先删除表再次创下设,借使表空中楼阁则一向开立
    if exists(select * from sysobjects where name='test1' and type ='U')
    drop table test1;
    go
    --建表语法表明
    create table test1
    (
    --字段注明
    id int identity(1,1) not null,
    name nvarchar(50) null,
    sex nvarchar(50) null,
    age nvarchar(50) null,
    classid int,
    height int constraint default_he default 166,
    primary key clustered(id asc) with(ignore_dup_key=off) on [primary] --主键索引申明
    )on [primary]

    --字段注释注解
    exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'id主键' , @level0type=N'SCHEMA',
    @level0name=N'dbo', @level1type=N'TABLE',@level1name=N'test1', @level2type=N'COLUMN',@level2name=N'id';

    exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'姓名' , @level0type=N'SCHEMA',
    @level0name=N'dbo', @level1type=N'TABLE',@level1name=N'test1', @level2type=N'COLUMN',@level2name=N'name';

    exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'性别' , @level0type=N'SCHEMA',
    @level0name=N'dbo', @level1type=N'TABLE',@level1name=N'test1', @level2type=N'COLUMN',@level2name=N'sex';

    exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'年龄' , @level0type=N'SCHEMA',
    @level0name=N'dbo', @level1type=N'TABLE',@level1name=N'test1', @level2type=N'COLUMN',@level2name=N'age';

    exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'班级id' , @level0type=N'SCHEMA',
    @level0name=N'dbo', @level1type=N'TABLE',@level1name=N'test1', @level2type=N'COLUMN',@level2name=N'classid';

    go

    澳门皇家赌场55533网址 4

    澳门皇家赌场55533网址 5

    修改列数据类型

    语法:alter table 数据库名.dbo.表名 alter column 列名 类型 [约束];  

    示例:alter table [testss].dbo.[test1] alter column height7 int null;  

    澳门皇家赌场55533网址 6

    澳门皇家赌场55533网址 7

    措施二:增多 SQL Server 身份验证

    总结

    1、每一种字段只可以有四个暗许约束。
    2、若是暗许约束设置的值超越字段所允许的尺寸,则截取到字段允许长度。
    3、不能够步向到含有IDENTITY属性只怕TIMESTAMP的字段上。
    4、要是字段的数据类型为用户自定义类型,并且已有暗中认可值绑定在此数据类型上,则不允许再度使用暗许值。

     

    运用T-SQL脚本加多DEFAULT约束

    选取SSMS数据库管理工科具修改列

    1、连接数据库,张开要修改的数据库,选拔数据表-》右键点击-》采取设计。

    澳门皇家赌场55533网址 8

    2、在新开拓的窗口视图中-》点击要修改的行-》能够修改列名、列类型、是还是不是可空、属性等-》修改造成点击保存开关(只怕ctrl s)。

    澳门皇家赌场55533网址 9

    --============ 删除'数据库用户' ============

    采纳T-SQL脚本修改DEFAULT约束

    DEFAULT约束修改准绳必须首先删除现成的DEFAULT约束,然后利用新定义再次创立,本领利用Transact-SQL修改DEFAULT约束。

    语法:

    --使用数据库
    use 数据库名;
    go
    --决断要创立的羁绊是还是不是已存在
    if exists(select * from sysobjects where name=约束名)
    alter table 表名 drop constraint 约束名;
    go
    --增多默许值约束
    alter table 表名 add constraint 约束名 default 约束值 for 列名;
    go

    示例:

    --使用数据库
    use testss;
    go
    --剖断要成立的羁绊是或不是已存在
    if exists(select * from sysobjects where name='default1')
    alter table test1 drop constraint default1;
    go
    --加多默许值约束
    alter table test1 add constraint default2 default 18 for age;
    go

     澳门皇家赌场55533网址 10

    澳门皇家赌场55533网址 11

    DEFAULT约束优劣点

    优点:

    1、使用暗许值能够减小代码量,新扩大加少时能够不用写新增加暗中同意值列,实行新添操作时时暗中同意填充。

    2、十分低价开展计算和解析,以及便于程序逻辑操作。

    缺点:

    1、使用不为NULL的暗中认可值,占用了更加的多的存款和储蓄空间。

     

    修改列暗中同意值

    假如默许值不设有

    语法:alter table 数据库名.dbo.表名 add constraint 约束名 default 暗中认可值 for 列名;

    示例:alter table [testss].dbo.[test1] add constraint df_h default 1 for height7;

    澳门皇家赌场55533网址 12

    澳门皇家赌场55533网址 13

      --5. 加多新主键  
      --if not exists(select * from sysobjects 
      --   where xtype='PK' and parent_obj=object_id(N'uinfor'))  
      alter table uinfor 
      add primary key(u_key,u_name);   
    --==================================================== 

    DEFAULT约束增多准绳

    1、若在表中定义了暗中同意值约束,用户在插入新的数据行时,即使该行未有一些名数量,那么系统将暗许值赋给该列,若是我们不安装暗许值,系统暗中认可为NULL。

    2、借使“暗中同意值”字段中的项替换绑定的暗许值(以不带圆括号的花样显得),则将唤起您拨冗对暗许值的绑定,并将其替换为新的私下认可值。

    3、若要输入文本字符串,请用单引号 (') 将值括起来;不要选择双引号 ("),因为双引号已封存用于带引号的标志符。

    4、若要输入数值暗中认可值,请输入数值何况永不用引号将值括起来。

    5、若要输入对象/函数,请输入对象/函数的称谓而且不要用引号将名称括起来。

    总结

    在支付还是生产数据库中,数据列一经济建设好,不要随便改造,随便变动大概会挑起数据库的级联操作败北和代码错误。

     

     2、用SQL创制数据库

    当表结构已存在时

    第一判定表中是还是不是存在私下认可约束,假使存在则先删除私下认可约束再增加,假如子虚乌有则间接助长。

    语法:

    use 数据库
    go
    澳门皇家赌场55533网址 ,--推断私下认可约束是还是不是存在,借使存在则先删除,如若不设有则直接助长
    if exists(select * from sysobjects where name=约束名)
    alter table 表名 drop constraint 约束名;
    go
    --给钦点列增加暗中认可约束
    alter table 表名 add constraint 约束名 default(约束值) for 列名;
    go

    示例:

    use [testss]
    go
    --推断默许约束是不是存在,要是存在则先删除,假若不设有则一向抬高
    if exists(select * from sysobjects where name='defalut_height')
    alter table [testss].[dbo].[test1] drop constraint defalut_height;
    go
    --给内定列增加私下认可约束
    alter table [testss].[dbo].[test1] add constraint defalut_height default(160) for height;
    go

    澳门皇家赌场55533网址 14

    澳门皇家赌场55533网址 15

    应用T-SQL脚本修改列

    -- 删除 SQL Server 登入用户
    exec sp_droplogin 'Andy';
    --后续版本的 Microsoft SQL Server 将去除该意义。

    应用SSMS数据库处理工科具增加DEFAULT约束

    1、连接数据库,采纳数据表-》右键点击-》选取设计。

    澳门皇家赌场55533网址 16

    2、在表设计窗口中-》选用数据列-》在列属性窗口中找到暗许值或绑定-》输入默许值(注意私下认可值的数据类型和输入格式)。

    澳门皇家赌场55533网址 17

    3、点击保存按键(可能ctrl s)-》刷新表-》再度张开表查看结果。

    澳门皇家赌场55533网址 18

    修改列名

    语法:exec sp_rename  表明.旧列名,新列名; 

    示例:exec sp_rename '[test1].height6','height7'; 

    澳门皇家赌场55533网址 19

    澳门皇家赌场55533网址 20

    ------------ 方法一:使用 SQL 语句(提出采用) ------------

    一旦暗许值存在

    语法:

    --先是步判别默认值否存在,要是存在就删除,要是不真实则不删除
    if exists (select * from sys.check_constraints where object_id = object_id(暗许值约束名) and parent_object_id = object_id(表名))
    alter table 表名 drop constraint 暗许值约束名

    --次之步增添暗许值

    alter table 表名 add constraint  约束名 default 默认值 for 列名;

    示例:

    --率先步判定约束是或不是留存,假诺存在就删除,假诺一纸空文则不删除
    if exists (select * from sys.check_constraints where object_id = object_id('df_h') AND parent_object_id = object_id('[testss].dbo.[test1]'))
    alter table [testss].dbo.[test1] drop constraint df_h

    --次之步增多暗许值

    alter table [testss].dbo.[test1] add constraint df_h default 2 for height7;

    澳门皇家赌场55533网址 21

    澳门皇家赌场55533网址 22澳门皇家赌场55533网址 23加多 Windows 身份验证

    修改数据列

    在支付和生产进度中,列名的拼写错误或然列名的退换是要求操作数据表的,大大多情状下都以无需修改的.

    以下两种情景下大家并不能够平素改造数据列:

    1、用于索引的列。 
    2、用于 CHECK、FOREIGN KEY、UNIQUE 或 P君越IMA逍客Y KEY 约束的列。 
    3、与私下认可值(由 DEFAULT 关键字定义)相关联的列,或绑定到暗许对象的列。 
    4、绑定到准则的列。 

    -- 删除数据库
    -- drop database myDBName;

    修改列是或不是可空

    语法:alter table 数据库名.dbo.表名 alter column 列名 类型 约束;  

    示例:alter table [testss].dbo.[test1] alter column height7 int not null;

    澳门皇家赌场55533网址 24

    澳门皇家赌场55533网址 25

    --2. 删除字段  
      --if exists(select * from syscolumns 
      --          where id=object_id(N'uinfor') and name='u_id')  
         alter table uinfor 
         drop column u_id;

    1、用SQL创造文件夹

    澳门皇家赌场55533网址 26澳门皇家赌场55533网址 27用SQL创造数据库用户

    3、用SQL创造数据表

    use master
    go -- 批管理的终止

    --4. 修改字段  
      --if exists(select * from syscolumns where id=object_id(N'uinfor')   and   name='u_key')  
         alter table uinfor 
         alter column u_key varchar(18) NOT NULL;  

    ------------ 方法二:使用系统存储进度(不推荐应用) ------------ 

    --============== 增加 Windows 身份验证 ==============

    use myDBName
    go
    ---------------- 删除学生消息表 ----------------
    if exists(select * from sysobjects where name='stuInfo')
       drop table stuInfo;
    ---------------- 创设学生新闻表 ----------------
    create table stuInfo
    (
       stuNo       char(6) primary key,
       stuName     varchar(20) not null,
       stuGender   bit default(1),
       stuAge      int check(stuAge between 0 and 100),
       stuBirthday datetime null default('2000-2-2'),
       stuSeat     smallint identity(1,1),--座位号:标识列
       stuAddress  text, --暗中同意允许为空
       stuID       numeric(18,0) unique --身份证 
    )

    澳门皇家赌场55533网址 28澳门皇家赌场55533网址 29用SQL创立文件夹

    -- 删除 Windows 身份验证,请给出完整名称: <域用户名>
    exec sp_revokelogin 'NEWER-XGxugang'; 

    --============ 向'数据库用户'授权 ============

          请尽量使用 Windows 身份验证。

    --移除'数据库用户'的权位 (设置为null)
    revoke insert on stuInfo from xg;
    --revoke all on stuInfo from xg;

    -- 独一约束:UQ_字段名
    alter table stuInfo
    add constraint UQ_stuNo unique(stuID);

    本文由68399皇家赌场发布于虚拟主机,转载请注明出处:SQLServer之修改DEFAULT约束

    关键词: 68399皇家赌场 Sql Server

上一篇:SQLServer之DEFAULT约束

下一篇:没有了