我们都知道在一个表中当需要2列以上才能确定记录的唯一性的时候,就需要用到联合主键,当建立联合主键以后,在查询数据的时候性能就会有很大的提升,不过并不是对联合主键的任何列单独查询的时候性能都会提升,但我们依然可以通过对联合主键中的首列除外的其他列建立非聚集索引来提高性能.本文将对联合主键.聚集索引.非聚集索引对查询性能的影响举例说明.步骤一,建立一个测试表,并且插入350万条以上的数据. /*创建测试数据表*/create table MyTestTable(id varchar(10)not n…
我们都知道在一个表中当需要2列以上才能确定记录的唯一性的时候,就需要用到联合主键,当建立联合主键以后,在查询数据的时候性能就会有很大的提升,不过并不是对联合主键的任何列单独查询的时候性能都会提升,但我们依然可以通过对联合主键中的首列除外的其他列建立非聚集索引来提高性能.本文将对联合主键.聚集索引.非聚集索引对查询性能的影响举例说明.步骤一,建立一个测试表,并且插入350万条以上的数据. /*创建测试数据表*/create table MyTestTable(id varchar(10)not n…
SQL Server 创建约束图解 唯一 主键-界面操作 SQLServer中有五种约束,Primary Key约束.Foreign Key约束.Unique约束.Default约束和Check约束,今天使用SQL Server2008来演示下这几种约束的创建和使用的方法. 1.Primary Key约束 在表中常有一列或多列的组合,其值能唯一标识表中的每一行. 这样的一列或多列成为表的主键(PrimaryKey).一个表只能有一个主键,而且主键约束中的列不能为空值.只有主键列才能被作为其他表的…
原文:MS SQL SERVER搜索某个表的主键所在的列名 SELECT SYSCOLUMNS.name  FROM SYSCOLUMNS,SYSOBJECTS,SYSINDEXES,SYSINDEXKEYS   WHERE SYSCOLUMNS.id = object_id('Tab_XXX') --syscolumns.id为该列所属的表对象ID   AND SYSOBJECTS.xtype = 'PK' --sysobjects.xtype对象类型  AND SYSOBJECTS.pare…
--SQL查找数据库中所有没有主键的数据表脚本 --运行脚本后在消息中可能会显示下面现象中的一种:--(1)数据库中所有数据表都有主键(则证明所有数据表都有主键)--(2)当前数据表[数据表名]没有主键(则可方便找到没主键的数据表) declare @TableName nvarchar(250)--游标中取出的数据表名declare @AllTableHasPrimaryKey int--是否全部都有主键set @AllTableHasPrimaryKey=1--声明读取数据库所有数据表名和编…
在SQL Server 2005环境下,表的主键应该怎样设计.目前主要用到的主键方案共三种: 自动增长主键 手动增长主键 UNIQUEIDENTIFIER主键 1.先说自动增长主键,它的优点是简单,类型支持bigint.但是它有致命的弱点: 当我们需要在多个数据库间进行数据的复制时(SQL Server的数据分发.订阅机制允许我们进行库间的数据复制操作),自动增长型字段可能造成数据合并时的主键冲突.设想一个数据库中的Order表向另一个库中的Order表复制数据库时,OrderID到底该不该自动…
一.子查询 子查询,又叫做嵌套查询. 将一个查询语句做为一个结果集供其他SQL语句使用,就像使用普通的表一样,被当作结果集的查询语句被称为子查询. 子查询有两种类型: 一种是只返回一个单值的子查询,这时它可以用在一个单值可以使用的地方,这时子查询可以看作是一个拥有返回值的函数: 另外一种是返回一列值的子查询,这时子查询可以看作是一个在内存中临时存在的数据表. 示例: --表一:学生表   student                      |--表二:教师表        teacher-…
SQLServer中有五种约束,Primary Key约束.Foreign Key约束.Unique约束.Default约束和Check约束,今天使用SQL Server2008来演示下这几种约束的创建和使用的方法. 1.Primary Key约束 在表中常有一列或多列的组合,其值能唯一标识表中的每一行. 这样的一列或多列成为表的主键(PrimaryKey).一个表只能有一个主键,而且主键约束中的列不能为空值.只有主键列才能被作为其他表的外键所创建. 创建主键约束可以右键单击表,选择设计. 选中…
主键设计的原则:1. 一定要显式定义主键2. 采用与业务无关的单独列3. 采用自增列4. 数据类型采用int,并尽可能小,能用tinyint就不用int,能用int就不用bigint5. 将主键放在表的第一列 这样设计的原因:1. 在innodb引擎中只能有一个聚集索引,我们知道,聚集索引的叶子节点上直接存有行数据,所以聚集索引列尽量不要更改,而innodb表在有主键时会自动将主键设为聚集索引,如果不显式定义主键,会选第一个没有null值的唯一索引作为聚集索引,唯一索引涉及到的列内容难免被修改引…
SQL Server导入导出 SQL Server 导入导出 工具/原料 使用Microsoft SQL Server Management Studio 导入导出数据. 直接使用Microsoft SQL Server Management Studio 导入导出数据会丢失主键.视图等等. 正确的保存方法如下: 一.选择本地的需要导出的数据库 右键-->任务-->生成脚本. 按向导选择需要导出的数据库下一步到“选择脚本选项” 选择需要生成的类型,注意“为服务器版本编写脚本”处选择对应的脚本.…