精华内容
下载资源
问答
  • 有三个字段,ProductId,PNumber,PDate。当ProductId,PNumber值一样时,PDate值也必须一样,不允许出现不同的PDate。ProductId,PNumber相同值的记录有很多条,请问怎么处理呢?
  • SQL Server2008创建约束图解 复习一下数据库的约束 机房收费系统个人重构版开始了,但在设计数据库时遇到了写小麻烦,主要是数据库中约束的应用,以前在学习数据库时进行了总结,在刚开始学习时使用的是SQL Server...

    SQL Server2008创建约束图解

    复习一下数据库的约束

    机房收费系统个人重构版开始了,但在设计数据库时遇到了写小麻烦,主要是数据库中约束的应用,以前在学习数据库时进行了总结,在刚开始学习时使用的是SQL Server2000 小操作了下,查证了几种约束的作用,但现在升级为 08 版的 SQL所以在操作方式上有了些区别。虽然是小麻烦但是也反映了我们学习的一种习惯,在对知识进行封存后就放到一边,等待下次的调用,知识是要进行反复咀嚼才能消化的。

        那闲话少说进入我们今天的主题, SQLServer 中有五种约束, Primary Key 约束、 Foreign Key 约束、 Unique 约束、 Default 约束和 Check 约束,今天使用SQL Server2008 来演示下这几种约束的创建和使用的方法。

    1 、 Primary Key 约束

        在表中常有一列或多列的组合,其值能唯一标识表中的每一行。

        这样的一列或多列成为表的主键(PrimaryKey)。一个表只能有一个主键,而且主键约束中的列不能为空值。只有主键列才能被作为其他表的外键所创建。

       创建主键约束可以右键单击表,选择设计 。

     

     

       选中要创建主键的列,然后单击上面的小钥匙。

     

       也可以右键需要创建主键的列,然后单击小钥匙。

     

    2 、 Foreign Key 约束

        外键约束是用来加强两个表(主表和从表)的一列或多列数据之间的连接的。创建外键约束的顺序是先定义主表的主键,然后定义从表的外键。也就是说只有主表的主键才能被从表用来作为外键使用,被约束的从表中的列可以不是主键,主表限制了从表更新和插入的操作。

       右键单击需要设置外键的列(此时的表是作为从表在外键中出现),选择关系。

       接下来点击添加 --> 表和列规范。

       在主键表中选择主表和主表的主键列。

     

       设置完后保存即可。

     

    3 、 Unique 约束

        唯一约束确保表中的一列数据没有相同的值。与主键约束类似,唯一约束也强制唯一性,但唯一约束用于非主键的一列或者多列的组合,且一个表可以定义多个唯一约束。

       右键单击要设置的列选择索引 / 键。

       然后单击添加按钮。

       选择需要设置的列,可以是一列也可以是多列的组合。

       关闭并保存设置。

    4 、 Default 约束

        若在表中定义了默认值约束,用户在插入新的数据行时,如果该行没有指定数据,那么系统将默认值赋给该列,如果我们不设置默认值,系统默认为 NULL 。

      以学生信息表为例,在表设计器中,为性别 sex 列填写默认值男。

    5 、 Check 约束

        Check 约束通过逻辑表达式来判断数据的有效性,用来限制输入一列或多列的值的范围。在列中更新数据时,所要输入的内容必须满足 Check 约束的条件,否则将无法正确输入。

       以学生信息表中的 sex 为例,我们要限制 sex 列的值只能为男或女。

       关闭并保存设计。

    展开全文
  • 使用 SQL Server 创建唯一索引

    千次阅读 2020-07-01 15:43:01
    使用 SQL Server Management Studio 使用表设计器创建唯一索引 在“对象资源管理器”中,展开包含您要创建唯一索引的表的数据库。 展开“表”文件夹。 右键单击你要创建唯一索引的表,然后选择“设计...

     

    使用表设计器创建唯一索引

    1. 在“对象资源管理器”中,展开包含您要创建唯一索引的表的数据库。

    2. 展开 “表” 文件夹。

    3. 右键单击你要创建唯一索引的表,然后选择“设计” 。

    4. 在“表设计器” 菜单上,选择“索引/键” 。

    5. 在“索引/键” 对话框中,单击“添加” 。

    6. 从“选定的主/唯一键或索引” 文本框中选择新索引。

    7. 在主网格中,在“(常规)” 下,选择“类型” ,然后从列表中选择“索引” 。

    8. 选择“列”,然后单击省略号 (…) 。

    9. 在 “索引列” 对话框中的 “列名” 下,选择要编制索引的列。 最多可选择 16 列。 为获得最佳的性能,请只为每个索引选择一列或两列。 对于所选的每一列,指定索引是以升序还是以降序来排列此列的值。

    10. 选择索引的所有列后,单击 “确定” 。

    11. 在主网格中,在“(常规)” 下,选择“是唯一的” ,然后从列表中选择“是” 。

    12. 可选:在主网格中,在 “表设计器” 下,选择 “忽略重复键” ,然后从列表中选择 “是” 。 如果要忽略尝试添加导致唯一索引中有重复键的数据,请这样做。

    13. 单击“关闭” 

     

    展开全文
  • SQL Server创建索引时,可以指定Unique使之成为唯一索引。“唯一”顾名思义,但是两都到底有什么区别呢?因为索引也是一种物理结构,所以还是要从存储和结构上分析。 索引结构分叶级和非叶级,分析时我们要分开来...
     
    
    • SQL Server创建索引时,可以指定Unique使之成为唯一索引。“唯一”顾名思义,但是两都到底有什么区别呢?因为索引也是一种物理结构,所以还是要从存储和结构上分析。

      索引结构分叶级非叶级,分析时我们要分开来看,这个很重要。

      文中涉及的索引行大小计算,参考MSDN估计数据库大小索引部分。

      1. 非唯一聚集索引和唯一聚集索引

        创建两个测试表,各10000条整数,tb1唯一,tb2非唯一,有1000条为9999的重复值。

      01. <img onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_402704').style.display='none'; document.getElementById('Code_Open_Image_402704').style.display='inline'; document.getElementById('Code_Open_Text_402704').style.display='inline';"id="Code_Closed_Image_402704" align="top" src="" width="11" height="16" style="display: none;"><img alt="加载中..." title="图片加载中..."src="http://www.it165.net/statics/images/s_nopic.gif"><img onclick="this.style.display='none'; document.getElementById('Code_Open_Text_402704').style.display='none'; getElementById('Code_Closed_Image_402704').style.display='inline'; getElementById('Code_Closed_Text_402704').style.display='inline';"id="Code_Open_Image_402704" style="display: none;" align="top" src="" width="11"height="16"><img alt="加载中..." title="图片加载中..."src="http://www.it165.net/statics/images/s_nopic.gif">Codecreate table tb1
      02. (col1 int);
      03. declare @i int=1
      04. while @i<10001
      05. begin
      06. insert into tb1 values(@i);
      07. set @i=@i+1;
      08. end;
      09. create unique clustered index ucix on tb1 (col1)
      10. go
      11. -------
      12. create table tb2
      13. (col2 int);
      14. declare @i int=1
      15. while @i<9001
      16. begin
      17. insert into tb2 values(@i);
      18. set @i=@i+1;
      19. end;
      20. go
      21. insert into tb2 values(9999)
      22. go 1000;
      23. create clustered index cix on tb2 (col2)
      24. go

      先查询索引的一些基本状况:

      image

      从上面的结果可以看到,无论是叶级还是非叶级,非唯一聚集索引的索引行都比唯一的大一些,所以所占页也多一点。当然,因为测试数据很小,又是int,所以不明显。

      那到底大在哪里呢?将两者的非叶级页和叶级页放在一起比一下就知道了。先找出页号,再用DBCC PAGE来查看。

      通过Paul S. Randal写的存储过程sp_allocationMetadata可以查到根页和每级索引的首页。

      image

      就挑这两个页做对比。

      image

      发现多出一个UNIQUIFIER,同样叶级也是一样。MSDN说明:

      如果聚集索引不是唯一的索引,SQL Server 将添加在内部生成的值(称为唯一值)以使所有重复键唯一。此四字节的值对于用户不可见。仅当需要使聚集键唯一以用于非聚集索引中时,才添加该值。”

      还有UNIQUIFIER不是一个全局自增列,重复记录增加时此值会发生改变,并且它是一个可为null的变长列。

      现在来算一算索引行大小:

         两个表都是只有一个int型可为NULL的字段,而聚集索引叶级是存储数据本身

         叶级是一个4字节的INT列,无变长列,加上3字节的NULL位图,再加上4字节的行头开销:两个表的叶级minSize =4+0+3+4=11

         非叶级是一个4字节的INT列,无变长列,加上3字节的NULL位图,加上1字节的行头开销,再加6字节的子页指针:两个表的非叶级minSize=4+0+3+1+6=14

         tb1的索引行大小是一致的minSize=maxSize,因为它是唯一的。tb2的索引行大小不一致,有大有小,大的索引行是因为:a)不唯一 b)UNIQUIFIER

         唯一标识列增加了2+1*2+4=8字节开销,tb2的min和max相差就是这8字节。

         tb2的叶级maxSize=4+8+3+4=19

         tb2的非叶级maxSize=4+8+3+1+6=22

      小结:非唯一聚集索引为保证索引键值唯一性,会生成UNIQUIFIER与键列一起组成索引键值。同时无论在叶级还是非叶页级,都比唯一索引占用更多存储空间。

      2.堆表上的唯一和非唯一的非聚集索引

      01. <img onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_431847').style.display='none'; document.getElementById('Code_Open_Image_431847').style.display='inline'; document.getElementById('Code_Open_Text_431847').style.display='inline';"id="Code_Closed_Image_431847" align="top" src="" width="11" height="16" style="display: none;"><img alt="加载中..." title="图片加载中..."src="http://www.it165.net/statics/images/s_nopic.gif"><img onclick="this.style.display='none'; document.getElementById('Code_Open_Text_431847').style.display='none'; getElementById('Code_Closed_Image_431847').style.display='inline'; getElementById('Code_Closed_Text_431847').style.display='inline';"id="Code_Open_Image_431847" style="display: none;" align="top" src="" width="11"height="16"><img alt="加载中..." title="图片加载中..."src="http://www.it165.net/statics/images/s_nopic.gif">Codecreate  table IndexTest
      02. (id int identity,
      03. UniqueCol int,
      04. NonuniqueCol int)
      05. go
      06. set nocount on;
      07. declare @i int=1;
      08. while @i<100000
      09. begin
      10. insert into IndexTest
      11. values(@i,@i);
      12. set @i=@i+1;
      13. end
      14. set nocount off;
      15. go
      16. create unique index UIX_UniqueCol on IndexTest (UniqueCol);
      17. create index IX_NonuniqueCol on IndexTest (NonuniqueCol);
      18. go
      19. select i.name,ips.index_id,ips.index_type_desc,index_depth,index_level,page_count,record_count,
      20. min_record_size_in_bytes as minSize,max_record_size_in_bytes as maxSize,avg_record_size_in_bytes as avgSize
      21. from sys.dm_db_index_physical_stats(DB_ID('test'),OBJECT_ID('IndexTest'),null,null,'DETAILED') ips
      22. inner join sys.indexes i
      23. on ips.object_id=i.object_id and ips.index_id=i.index_id
      24. order by name,index_level

      image

      两者的页级大小是一样的,非叶级页的相差8bytes。

      跟1.中的分析方法一样,挑两个非叶级页出来对比一下,看相差在哪里。

      image

      非唯一索引行多了一个HEAP RID,MSDN说明:

      如果非聚集索引不是唯一的,数据行定位符将与非聚集索引键组合使用,以便为每一行生成唯一的键值。如果非聚集索引在堆上,则数据行定位符是堆 RID。其大小是 8 个字节。

      两者叶级索引行大小=INT型4字节+无变长列+1字节行头+3字节NULL位图+8字节RID=4+0+1+3+8=16

      唯一索引的非叶级行=INT型4字节+无变长列+1字节行头+3字节NULL位图+6字节子页索引=14

      非唯一索引的非叶级行=INT型4字节+无变长列+1字节行头+3字节NULL位图+6字节子页索引+8字节的RID=22

      小结:堆表上的非唯一索引在非叶级索引行上比唯一索引多出一列行定位符RID,而叶级是一样的,都有RID列。所以非唯一要占用更多的空间。

       

      3.唯一聚集索引表上的唯一和非唯一非聚集索引 

      跟2.中的测试数据一样,只是把ID列改成聚集主键。执行:

      1. <img onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_597393').style.display='none'; document.getElementById('Code_Open_Image_597393').style.display='inline'; document.getElementById('Code_Open_Text_597393').style.display='inline';"id="Code_Closed_Image_597393" align="top" src="" width="11" height="16" style="display: none;"><img alt="加载中..." title="图片加载中..."src="http://www.it165.net/statics/images/s_nopic.gif"><img onclick="this.style.display='none'; document.getElementById('Code_Open_Text_597393').style.display='none'; getElementById('Code_Closed_Image_597393').style.display='inline'; getElementById('Code_Closed_Text_597393').style.display='inline';"id="Code_Open_Image_597393" style="display: none;" align="top" src="" width="11"height="16"><img alt="加载中..." title="图片加载中..."src="http://www.it165.net/statics/images/s_nopic.gif">Code alter table IndexTest add constraint PK_IndexTest primary key clustered (ID)

      image

      这里有意思的是聚集索引的非叶级行只有11字节,跟同样的1.中的14相差了3字节。这3字节是因为现在这个表,索引列是自增主键,是不能为NULL的,所以就没有NULL位图的3个字节的开销了。

      两者的叶级行大小一样,看一下长的是不是一样:
      image

      两者的区别在于对聚集索引键的引用上,即“id”和“id(key)”。MSDN说明:

      如果非聚集索引不是唯一的,数据行定位符将与非聚集索引键组合使用,以便为每一行生成唯一的键值。如果非聚集索引在聚集索引之上,则数据行定位符是聚集键。

      唯一非聚集索引中的“id”是做为行定位符引用的,非唯一非聚集索引中的“id(key)”,不仅是做为行定位符引用,并且还是此索引本身键列(“key”的含义)。

      非叶级行相差4个字节,对比一下页的内容就知道差在哪里:

      image

      从上图看出非唯一索引比唯一的多了一列”id(key)”,这是前者引用了聚集索引键并做做自己的键列,而唯一索引不需要这样。

      小结:唯一聚集索引表上的非唯一非聚集索引与唯一非聚集索引,在叶级上大小是一样的,在非叶级行多引用一列“聚集键”,所以前者占用的存储空间也会更大一些。

      4. 非唯一聚集索引表上的唯一和非唯一非聚集索引

        测试数据中给制造了一些重复数据。

      01. <img onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_565480').style.display='none'; document.getElementById('Code_Open_Image_565480').style.display='inline'; document.getElementById('Code_Open_Text_565480').style.display='inline';"id="Code_Closed_Image_565480" align="top" src="" width="11" height="16" style="display: none;"><img alt="加载中..." title="图片加载中..."src="http://www.it165.net/statics/images/s_nopic.gif"><img onclick="this.style.display='none'; document.getElementById('Code_Open_Text_565480').style.display='none'; getElementById('Code_Closed_Image_565480').style.display='inline'; getElementById('Code_Closed_Text_565480').style.display='inline';"id="Code_Open_Image_565480" style="display: none;" align="top" src="" width="11"height="16"><img alt="加载中..." title="图片加载中..."src="http://www.it165.net/statics/images/s_nopic.gif">Codecreate  table IndexTest
      02. (id int ,
      03. UniqueCol int,
      04. NonuniqueCol int)
      05. go
      06. set nocount on;
      07. declare @i int=1;
      08. while @i<100000
      09. begin
      10. insert into IndexTest
      11. values(@i,@i,@i);
      12. set @i=@i+1;
      13. end
      14. set nocount off;
      15. go
      16. create clustered index CIX_ID on IndexTest(ID);
      17. create unique index UIX_UniqueCol on IndexTest (UniqueCol);
      18. create index IX_NonuniqueCol on IndexTest (NonuniqueCol);
      19. go
      20. update IndexTest
      21. set NonuniqueCol=99999,id=99999
      22. where id>90000
      23. go

      image

      由前文的分析可知上图所有索引的minSize和maxSize相差8字节都是由UNIQUEIFIER产生。

      两个非聚集索引的叶级行一样大,原因跟3. 中分析的一样,只是两者除了引用聚集键之外,还会引用跟聚集键结合使用的UNIQUEIFIER。

      但是非叶级页两差有着较大的差异,查看页面:

      image

      从页面内容可以看出,非唯一非聚集比唯一多了两列,其它这两列可以看成一列,原因就是当聚集索引不唯一时,会生成UNIQUIFIER并结合,用以保证聚集键唯一。

      小结:非唯一聚集索引表上的非唯一非聚集索引在叶级行上大小是一样的,而在非叶级行上前者比后大,所以也占用更多存储空间。

      总结:

        1. 在表和索引设计阶段,如果可能,字段设定为不允许NULL,索引设定为唯一。这样节约存储空间并提高了IO效率。

        2. 聚集索引键列应该尽量选用窄的字段,因为非聚集索引会引用其键列。如果聚集键过大则会使非聚集索引同时也占用更多存储空间。

        3. SQL Server在创建索引时,默认是创建非唯一的。所以在创建索引时,要认真考虑是否可以创建为唯一索引。

        4. 文中用词有些绕。

    展开全文
  • 文章目录准备知识定义唯一约束使用SSMS工具定义唯一约束使用SQL方式定义唯一约束方式一:在创建数据表的时候定义唯一约束方式二:修改数据表定义唯一约束删除唯一约束使用SSMS工具删除唯一约束方式一:在对象资源...




    准备知识

        如果要求数据表中的某列不能输入重复值,有两种约束可以做到。一种是主键约束,即该列是数据表的主键;另一种则是唯一约束,对于不是主键的列,唯一约束能够确保不会出现重复值(可以为NULL值)。
        唯一约束允许 NULL 值,这一点与主键约束不同。 不过,当与参与唯一约束的任何值一起使用时,每列只允许一个空值。 外键约束可以引用 唯一约束。
        默认情况下,向表中的现有列添加唯一约束后,数据库引擎将检查列中的现有数据,以确保所有值都是唯一的。 如果向含有重复值的列添加唯一约束, 数据库引擎将返回错误消息,并且不添加约束。
        数据库引擎将自动创建唯一索引来强制执行唯一约束的唯一性要求。 因此,如果试图插入重复行, 数据库引擎将返回错误消息,说明该操作违反了唯一约束,不能将该行添加到表中。 除非显式指定了聚集索引,否则,默认情况下将创建唯一的非聚集索引以强制执行唯一约束。

    定义唯一约束

    使用SSMS工具定义唯一约束
    1. 展开“数据库”,然后展开相应的数据库,再展开数据库中的“表”,右击需要定义唯一约束的数据表,选择“设计”。
      在这里插入图片描述
    2. 进入表设计器界面,点击工具栏的“管理索引和键”按钮,或者右键选择“索引和键”。
      在这里插入图片描述
      在这里插入图片描述
    3. 进入“索引/键”对话框,点击“添加”。
      在这里插入图片描述
    4. 单击右侧的“类型”,在右侧下拉框中选择“唯一键”。
      在这里插入图片描述
    5. 单击右侧的“列”,点击右边的“…”按钮。
      在这里插入图片描述
    6. 进入索引列对话框,在列名中选择需要添加唯一性约束的属性列,点击“确定”。
      在这里插入图片描述
    7. 在“标识”的“(名称)”中修改唯一约束的名称,点击“关闭”。
      在这里插入图片描述
    8. 点击保存键,或者按Ctrl+F5键进行保存。展开数据表,展开“键”,可以看到定义的唯一约束。
      在这里插入图片描述

    使用SQL方式定义唯一约束
    方式一:在创建数据表的时候定义唯一约束
    1. 在SSMS工具栏中单击“新建查询”,打开“SQL编辑器”窗口
      在这里插入图片描述
    2. 输入创建SQL代码
    USE schoolDB                                                 --打开数据库schoolDB
    GO
    IF EXISTS(SELECT * FROM sysobjects WHERE name='student') 
    DROP TABLE student                --检查student是否已经存在,如果存在,则删除
    GO
    CREATE TABLE student                                           --表名为student
    (
    	  StuID int NOT NULL,                                           --学生学号
    	  StuName varchar(15) UNIQUE NOT NULL,                          --学生姓名
    	  Sex char(2) NULL,                                             --性别
    	  Major varchar(20) NULL,                                      --所选专业
    )
    
    
    
    1. 点击“分析”按钮,或按住Ctrl+F5,对SQL代码进行语法分析,确保SQL语句语法正确。
      在这里插入图片描述
    2. 点击“执行”按钮,或按住F5,执行SQL代码。
      在这里插入图片描述
    3. 查看数据表中的键。
      在这里插入图片描述

    方式二:修改数据表定义唯一约束
    1. 在SSMS工具栏中单击“新建查询”,打开“SQL编辑器”窗口
      在这里插入图片描述
    2. 输入创建SQL代码
    USE schoolDB                                                 --打开数据库schoolDB
    GO
    ALTER TABLE student
    ADD CONSTRAINT UQ_student_StuName UNIQUE(StuName) 
    			--将student表中的StuName列定义唯一约束
    
    
    
    1. 点击“分析”按钮,或按住Ctrl+F5,对SQL代码进行语法分析,确保SQL语句语法正确。
      在这里插入图片描述
    2. 点击“执行”按钮,或按住F5,执行SQL代码。
      在这里插入图片描述
    3. 查看数据表中的键。
      在这里插入图片描述



    删除唯一约束

    使用SSMS工具删除唯一约束
    方式一:在对象资源管理器中删除唯一约束
    1. 展开需要删除唯一约束的数据表,然后再展开“键”。
      在这里插入图片描述
    2. 右击需要删除的唯一约束,选择“删除”。
      在这里插入图片描述
    3. 在删除对象界面,点击“确定”,即可完成唯一约束删除。
      在这里插入图片描述

    方式二:在表设计器中删除唯一约束
    1. 右击需要删除唯一约束的数据表,选择“设计”。
      在这里插入图片描述

    2. 进入表设计器界面,点击工具栏的“管理索引和键”按钮,或者右键选择“索引和键”。
      在这里插入图片描述
      在这里插入图片描述

    3. 在“索引/键”对话框中选择需要删除的唯一约束,点击“删除”,完成唯一约束的删除。
      在这里插入图片描述


    使用SQL方式删除唯一约束
    1. 在SSMS工具栏中单击“新建查询”,打开“SQL编辑器”窗口
      在这里插入图片描述

    2. 输入创建SQL代码

    USE schoolDB --打开schoolDB数据库
    GO
    ALTER TABLE class 
    DROP CONSTRAINT UQ_class_ClassName   --删除表class的唯一约束UQ_class_ClassName
    
    
    1. 点击“分析”按钮,或按住Ctrl+F5,对SQL代码进行语法分析,确保SQL语句语法正确。
      在这里插入图片描述
    2. 点击“执行”按钮,或按住F5,执行SQL代码。
      在这里插入图片描述
    3. 唯一约束已被删除。
      在这里插入图片描述



    展开全文
  • SQL Server Replication

    千次阅读 2016-04-18 23:26:48
    sql server replication
  • 本文属于SQL Server安全专题系列  在安装SQL Server时,很重要的一步就是选择所需的服务,由于每个服务必须有一个服务帐号,所以也就需要帐号的选择和配置,应该坚持最小所需权限原则。最小所需权限原则应该...
  • 存储过程,用于生成唯一ID,并且在 并发情况下,保证了 ID序号的唯一性。可以应用在,数据库系统中,作全局唯一序号的获取。 以下代码用于 SQL Server 2000 CREATE PROCEDURE GetNewID ASDECLARE @ID
  • SQL Server 2008中,对服务器安全管理主要通过更加健壮的验证模式,安全的登录服务器的账户管理以及对服务器角色的控制,从而,更加有力的保证了服务器的安全便捷 转载自:...
  • 直到几天前同事给我个脚本来约束某个字段的唯一性,用的是唯一键约束,这问题又萦绕脑中了。看似有区别,又没发现什么大的区别!实际上也没多大区别,还是测试看看吧。 USE [DemoDB] GO CREATE TABLE [dbo]....
  • SQL Server 笔记

    千次阅读 多人点赞 2018-06-14 12:50:00
    Sql数据库SQL Server简介 1996——SQL server6.51998——SQL server7.02000——SQL server20002005——SQL server20052008——SQL server20082012——SQL server20122014——SQL server2014 1.企业版 (SQL Server ...
  • SQL Server

    2012-08-12 11:11:25
    SQL Server和Microsoft SQL Server是同义词,已合并,也就是说SQL Server已经是一个商品了,也有人把SQL Server当成服务器端的一部分,现在人们习惯用SQL Server来代表关系型数据库管理系统,不用死扣这个名词,...
  • SQL Server 创建约束图解 唯一 主键

    千次阅读 2017-11-14 11:23:58
    SQLServer中有五种约束,Primary Key约束、Foreign Key约束、Unique约束、Default约束和Check约束,今天使用SQL Server2008来演示下这几种约束的创建和使用的方法。 1、Primary Key约束  在表中常...
  • SQL Server安全专题一:简介

    千次阅读 2012-06-07 09:54:04
    SQLServer环境中,安全可以认为是【数据保护】。包括:  数据只能被已授权的用户访问。  数据被安全地存储。  数据要被安全地传输。  数据可恢复 以下是详解: 1、 数据只能被已授权的用户访问: ...
  • 如果为表指定了 PRIMARY KEY 约束,则 SQL Server 2005 数据库引擎 将通过为主键列创建唯一索引来强制数据的唯一性。当在查询中使用主键时,此索引还可用来对数据进行快速访问。因此,所选的主键必须遵守创建唯一...
  • 转自:http://blog.csdn.net/Helling/archive/2009/10/19/4696705.aspx SQL Server Express 2005(以下简称 SQLExpress) 是由微软公司开发的 SQL Server 2005...SQL Server 2005 的多数功能与特性,如:安全设置...
  • SqlServer unique唯一约束

    2016-04-28 17:39:00
    UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。 PRIMARY KEY 拥有自动定义的 UNIQUE 约束。 请注意 1.每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。 2....
  • SQL server基础

    千次阅读 多人点赞 2020-03-10 17:06:40
    SQL server基础1. SQL语言的分类2. SQL server库&表操作与约束2.1 库操作:2.1.1 创建数据库:2.1.2 修改数据库:2.1.3 删除数据库:2.2 表操作:2.2.1 SQL server常用数据类型:2.2.2 创建表:2.2.3 修改表:2.3 ...
  • SQLServer中有五种约束,Primary Key约束、Foreign Key约束、Unique约束、Default约束和Check约束,今天使用SQL Server2008来演示下这几种约束的创建和使用的方法
  • SQL Server 数据库之数据完整

    千次阅读 2019-12-01 14:48:50
     · 唯一性约束  ~ 域完整性  · 空值约束  · 默认约束  · 检查约束  ~ 引用完整性  ~ 删除和禁用约束  · 删除约束  · 禁用约束 简述  数据完整性是指数据库中数据在逻辑上的一致性、准确性、有效性和...
  • SQL Server On Linux(1)——CentOS 7 安装SQL Server2019

    千次阅读 多人点赞 2018-09-29 16:40:17
    SQL Server 2019已经正式公布,虽然只是preview版,但是不影响我们追求新的技术。接下来的一个系列,随着本人的研究,尽量让这个系列成为“教程”,真正的入门到精通。 环境准备   不废话,先把研究环境搭建起来...
  • SQL SERVER

    千次阅读 2006-01-17 15:56:00
    SQL Server数据库文件恢复技术SQL Server数据库备份有两种方式,一种是使用BACKUP DATABASE将数据库文件备份出去,另外一种就是直接拷贝数据库文件mdf和日志文件ldf的方式。下面将主要讨论一下后者的备份与恢复。...
  • SQL Server Storage

    万次阅读 2016-05-25 20:45:21
    SQL Server中的哪些对象会占用磁盘空间? 看到标题的第一瞬间,让我想到的就是这个问题。下面我们就试着来讲一讲这个问题. 第一个磁盘空间使用大头肯定想到就是表。表只是一个逻辑对象,又没有想过表这个逻辑对象是...
  • sqlserver添加字段值唯一约束

    千次阅读 2021-02-02 11:19:38
    ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE (列名) 例如: alter table erp_basic_billno_prefix add constraint djlb_code_id unique(djlb_code); 转载自:https://www.cnblogs.com/gzhbk/p/11510720.html
  • 索引 实际上是一组指向表中数据的指针,索引的排列顺序其实就是这组指针的...是给所做的索引增加了唯一性的约束,添加,修改索引列中数据时,不允许出现重复值.它可以是聚集索引,也可以是非聚集的,就看你如何定义
  • 本篇文章详细讲解了SQL Server的主键约束、唯一约束和外键约束这一块。图文并茂,方便大家理解与学习。有兴趣的朋友可以看下
  • sql server

    千次阅读 2012-03-23 01:14:56
    sql server 作者:Sanle 来源:博客园 发布时间:2006-04-27 13:06 阅读:3402 次 原文链接 [收藏]  1.清空日志:DUMP TRANSACTION 库名 WITH NO_LOG  2.截断事务日志:BACKUP LOG 数据库名 WITH NO...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 126,405
精华内容 50,562
关键字:

sqlserver唯一性