精华内容
下载资源
问答
  • sql定义两个主键
    千次阅读
    2020-12-21 12:04:37

    SQLSERVER自增主键

    SQLServer 中含自增主键的表,通常不能直接指定ID值插入,可以采用以下方法插入。

    1. SQLServer 自增主键创建语法:

    identity(seed, increment)

    其中

    seed 起始值

    increment 增量

    示例:

    create table student(

    id int identity(1,1),

    name varchar(100)

    )

    2. 指定自增主键列值插入数据(SQL Server 2000)

    先执行如下语句

    SET IDENTITY_INSERT [ database. [ owner. ] ] { table }  ON

    然后再执行插入语句

    最后执行如下语句

    SET IDENTITY_INSERT [ database. [ owner. ] ] { table }  OFF

    示例:

    表定义如下

    create table student(

    id int identity(1,1),

    name varchar(100)

    )

    插入数据

    set IDENTITY_INSERT student ON

    insert into student(id,name)values(1,'student1');

    insert into student(id,name)values(2,'student2');

    set IDENTITY_INSERT student OFF

    相关文档:

    在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题。下面介绍SQL Server支持的两种批量数据插入方法:Bulk和表值参数(Table-Valued Parameters)。

    运行下面的脚本,建立测试数据库和表值参数。

    代码如下:

    --Create D ......

    SQL SERVER数据库开发的二十一条军规

    如果你正在负责一基于SQL SERVER 的项目,或者刚刚接触SQL SERVER,你可能将面临一些数据库性能的问题。这篇文章会提供一些有用的经验-----关于如何形成好的设计。

    一、了解你用的工具

    不要轻视这一点,这是本文最关键的一条。也许你也看到有很多的SQL SERVER程序员没有掌握全部的T- ......

    MySQL:

    SELECT column from table

    ORDER BY RAND()

    LIMIT 1

    PostgreSQL:

    SELECT column from table

    ORDER BY RANDOM()

    LIMIT 1

    Microsoft SQL Server:

    SELECT TOP 1 column from table

    ORDER BY NEWID()

    IBM DB2

    SELECT column, RAND() as IDX

    from table

    ORDER BY IDX FETCH FIRST 1 ROWS ONLY

    Thanks Ti ......

    SQL Server 2008 Administration Instant Reference

    SQL Server 2005 数据库基础与应用技术

    Microsoft SQLServer 2005 Integration Services Step by Step

    SQLServer 2005 Bible

    SQL Server 2005 数据库服务架构设 ......

    SQLServer2005分解并导入xml文件 收藏

    测试环境SQL2005,windows2003

    DECLARE @idoc int;

    DECLARE @doc xml;

    SELECT @doc=bulkcolumn from OPENROWSET(

    BULK 'D: \test.xml',

    SINGLE_BLOB) AS x

    EXEC sp_xml_preparedocument @Idoc OUTPUT, @doc

    ......

    更多相关内容
  • --上面這句一定要用到 ) check_id,check_no是这个表的联合主键 一个表只允许有一个主键 但一个主键可以允许由多个字段构成复合主键 所以楼主的写法是不行的,用了多个主键 冒牌的可以,由多个字段构成一个主键 而一个...

    完全可以create tabletabCheck

    (

    check_idint not null,

    check_noint not null,

    startdatedatetime,

    enddatedatetime.......................CONSTRAINT [PK_tabCheck] PRIMARY KEY CLUSTERED (check_id,check_no) ON [PRIMARY]

    --上面這句一定要用到

    )

    check_id,check_no是这个表的联合主键

    一个表只允许有一个主键

    但一个主键可以允许由多个字段构成复合主键

    所以楼主的写法是不行的,用了多个主键

    冒牌的可以,由多个字段构成一个主键

    而一个表允许多个唯一键,所以如果仅仅是为了限制字段的记录不重复的话,可以用一个主键,多个唯一键的方式.--如果楼主是要 paper_name+author_id 构成复合主键

    create tablepaper (

    paper_namevarchar(50) not null,

    author_idchar(10) not null,constraint PK_paper primary key(paper_name,author_id) --复合主键

    )--如果楼主是要 paper_name 与 author_id 的值都不重复,则:

    create tablepaper (

    paper_namevarchar(50) not null primary key, --用主键做限制

    author_id char(10) not null constraint UQ_paper_author_id unique --用唯一键做限制

    )

    我们在create table时经常会碰到这样的语句,例如:CityNamenvarchar(10)collate chinese_prc_ci_as null,那它到底是什么意思呢?不妨看看下面:

    首先,collate是一个子句,可应用于数据库定义或列定义以定义排序规则,或应用于字符串表达式以应用排序规则投影。

    语法是collate collation_name

    collation_name ::={windows_collation_name}|{sql_collation_name}

    参数collate_name是应用于表达式、列定义或数据库定义的排序规则的名称。collation_name 可以只是指定的 Windows_collation_name 或 SQL_collation_name。

    Windows_collation_name 是 Windows 排序规则的排序规则名称。参见 Windows 排序规则名称。

    SQL_collation_name 是 SQL 排序规则的排序规则名称。参见 SQL 排序规则名称。

    下面简单介绍一下排序规则:

    什么叫排序规则呢?MS是这样描述的:"在 Microsoft SQL Server2000中,

    字符串的物理存储由排序规则控制。排序规则指定表示每个字符的位模式以及存

    储和比较字符所使用的规则。"

    在查询分析器内执行下面语句,可以得到SQL SERVER支持的所有排序规则。select * from::fn_helpcollations()

    排序规则名称由两部份构成,前半部份是指本排序规则所支持的字符集。

    如:

    Chinese_PRC_CS_AI_WS

    前半部份:指UNICODE字符集,Chinese_PRC_指针对大陆简体字UNICODE的排序规则。

    排序规则的后半部份即后缀 含义:

    _BIN 二进制排序

    _CI(CS) 是否区分大小写,CI不区分,CS区分

    _AI(AS) 是否区分重音,AI不区分,AS区分

    _KI(KS) 是否区分假名类型,KI不区分,KS区分

    _WI(WS) 是否区分宽度 WI不区分,WS区分

    区分大小写:如果想让比较将大写字母和小写字母视为不等,请选择该选项。

    区分重音:如果想让比较将重音和非重音字母视为不等,请选择该选项。如果选择该选项,

    比较还将重音不同的字母视为不等。

    区分假名:如果想让比较将片假名和平假名日语音节视为不等,请选择该选项。

    区分宽度:如果想让比较将半角字符和全角字符视为不等,请选择该选项

    展开全文
  • 用T-sql语句设置两个主键sqlserver

    千次阅读 2020-03-17 08:54:06
    通过PRIMARY KEY(列名1,列名2)这条语句即可实现

    通过PRIMARY KEY(列名1,列名2)这条语句即可实现
    在这里插入图片描述

    展开全文
  • SQLServer 2012 主键约束(定义主键、删除主键

    万次阅读 多人点赞 2019-04-21 18:18:00
    文章目录定义主键使用SSMS工具定义主键使用SQL方式定义主键方式一:在创建数据表的时候定义主键方式二:修改数据表定义主键删除主键使用SSMS工具删除主键方式一:在对象资源管理器中删除主键方式二:在表设计器中...




        主关键字(primary key)是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录。在两个表的关系中,主关键字用来在一个表中引用来自于另一个表中的特定记录。主关键字是一种唯一关键字,表定义的一部分。一个表的主键可以由多个关键字共同组成,并且主关键字的列不能包含空值。

    定义主键

    使用SSMS工具定义主键
    1. 展开“数据库”,然后展开相应的数据库,再展开数据库中的“表”,右击需要定义主键的数据表,选择“设计”。
      在这里插入图片描述
    2. 进入表设计器界面,右击相应的行(如果需要定义包含多个列的复合主键,则按住Ctrl键选择),然后选择“设置主键”,即完成主键的设置。
      在这里插入图片描述
    3. 点击保存键,或者按Ctrl+F5键进行保存。展开数据表,展开“键”,可以看到定义的主键。
      在这里插入图片描述
    4. 如果没有,请按刷新键或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 PRIMARY KEY,                                           --学生学号
    	  StuName varchar(15) 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 PK_student PRIMARY KEY (StuID) --将表中的StuID设为主键
    
    
    1. 点击“分析”按钮,或按住Ctrl+F5,对SQL代码进行语法分析,确保SQL语句语法正确。
      在这里插入图片描述
    2. 点击“执行”按钮,或按住F5,执行SQL代码。
      在这里插入图片描述
    3. 查看数据表中的键。
      在这里插入图片描述



    删除主键

    使用SSMS工具删除主键
    方式一:在对象资源管理器中删除主键
    1. 展开需要删除主键的数据表,然后再展开“键”。
      在这里插入图片描述
    2. 右击需要删除的主键,选择“删除”。
      在这里插入图片描述
    3. 在删除对象界面,点击“确定”,即可完成主键删除。
      在这里插入图片描述
    方式二:在表设计器中删除主键
    1. 右击需要删除主键的数据表,选择“设计”。
      在这里插入图片描述
    2. 进入表设计器界面,右击包含主键的行,选择“删除主键”。
      在这里插入图片描述
    3. 点击保存键,或者按Ctrl+F5键进行保存删除主键后的数据表信息。
      在这里插入图片描述

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

    2. 输入创建SQL代码

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



    展开全文
  • 1、把主键定义为自动增长标识符类型MySql在mysql中,如果把表的主键设为auto_increment类型,数据库就会自动为主键赋值。例如:create table customers(id int auto_increment primary key not null, name varchar...
  • 在mysql中,如果把表的主键设为auto_increment类型,数据库就会自动为主键赋值。例如:CREATE TABLE google(id INT AUTO_INCREMENT PRIMARY KEY NOT NULL,NAME VARCHAR(15),age INT,email VARCHAR(50),gender ...
  • SQLserver 自增主键

    2020-12-21 12:04:40
    最近遇到过这个SQLserver数据库主键问题,所以从网上找了一些解决方法,防止以后找不到,就搬到我这边了,如有侵权,请联系我,我会尽快删除。一、CREATETABLE表名(字段名[int]IDENTITY(1,1)NOTNULL,//(seed=1,...
  • SQL Server中如何给主键添加主键约束

    千次阅读 2021-01-20 17:18:55
    在如下图中大家可以看到的是一个Student表,其中表中可以看到一个StudentNo的列,今天主要来说的就是针对如何给这个StudentNo来添加一个主键约束。(这里也希望大家能够学以致用)4     
  • SQL主键和外键

    千次阅读 2021-06-26 22:16:46
    1.定义主键和外键主要是为了维护关系数据库的完整性。 总结一下: (1)主键是能确定一条记录的唯一标识。 eg:一条记录包括身份正号,姓名,...主键:一般情况下,满足第一范式的表都有一个主键Primary key,用于唯
  • 内存表可以理解为是一内存变量,只在内存中定义,性能更好,但如果数据量过大则不适合使用,因为会占用过多的服务器操作系统内存资源。 而在客户端,临时表则更容易使用,可以处理较大的数据量,因为临时表是物理...
  • PRIMARY KEY联合主键

    2020-12-14 09:32:40
    ①每个表只能定义个主键 ②唯一性原则 即主键值必须唯一标识表中的每一行,且不能为 NULL,即表中不可能存在有相同主键值的行数据 ③一个字段名只能在联合主键字段表中出现一次 ④联合主键的最小化原则 即联合...
  • SQLServer学习笔记 - 主键的理解

    千次阅读 2020-10-08 14:19:01
    最近在学习SQLServer时,发现里面有个主键的概念和作用总是模糊不清,因此上网去搜索了一些主键的一些意义,加深一下理解 什么是主键 按照百度百科的定义,主键(primary key)是数据表中的一个或多个字段,其值用于...
  • mysql建表时怎么设置主键

    千次阅读 2021-03-04 02:44:07
    设置方法:在“CREATE TABLE”语句中,通过“PRIMARY KEY”关键字来指定主键,语法格式“字段名 数据类型 PRIMARY KEY [默认值]”或“...一般情况下,为了便于 DBMS 更快的查找到表中的记录,都会在表中设置一...
  • SQL教程(二):主键

    2020-09-03 08:25:12
    文章目录主键【1】主键选取原则【2】ID主键【3】联合主键 ...主键定义:唯一定位记录的字段 一旦插入表中最好不要修改 【1】主键选取原则 不能选择任何业务相关的字段作为主键 手机号、邮箱、身份证号……这都是和.
  • SQL Server:主键与外键设置与相关理解

    千次阅读 多人点赞 2022-04-13 19:51:14
    个人在学习数据库基础操作时主键外键的设置,以及对于两者之间关系的模糊之处的理解与总结。
  • SQL语句定义两个主键

    千次阅读 2008-02-29 21:05:00
    有时候需要将两个字段作为 联合主键SQL语句如下CONSTRAINT PK_Name PRIMARY KEY (col1,col2)说明:col1,col2分别为需要组成联合主键两个字段 
  • 每个表都应该有一个主键,并且每个表只能有一个主键(可以是多个列为一个主键)。 唯一约束(Unique Constraint):约束唯一标识数据库表中的每条记录,确保表中的某一列或者复合列数据没有相同的值。 UNIQUE 和 ...
  • sql-主键即自增长的设置及语法实现

    万次阅读 2018-08-08 22:53:35
    sql实现,在设计表结构时,直接定义主键PRIMARY KEY关键字,以PK_开头,一般为:PK_列名 CREATE TABLE S ( id int primary key not null, sname char(8) NULL, /*姓名字段*/ sex char(2) NULL, /*性别字段*/ ...
  • 插入数据主键重复或数据已经存在,则更新这条数据了这可以使用ON DUPLICATE KEY UPDATE了,下面我们来看一下如何实现我们需要的要求。在做数据库开发的时候,经常会遇到这样的一种情景:当一条数据不存在的时候,...
  • sql语句创建主键

    千次阅读 2016-09-26 11:39:07
    对于有数据的表,在企业管理器里面创建索引时,容易超时,使用sql语句只要在,工具-选项设置超时值为0,就不会超时。 在已有表里创建主键:alter table t_inputdata add constraint PK_t_inputdata primary key...
  • 如果已有主键需要先删除再同时添加。 错误示范:
  • 一,sql语句创建 oracle数据库与mysql数据库的主键自增设置是不同的。 mysql主键自增很简单,在创建主键的时候在主键字段后增加auto_increment就可以实现自增。 但是oracle相比下多了步操作: ①创建序列:可以...
  •   两个字段分别建立唯bai一约束,数据库单du独验证每个字段中值zhi的唯一性,两个字段一起建立唯一约dao束,数据库将两个字段值合并后验证唯一性。例如关系R(a,b)的两个记录r1(1,2)和r2(1,3),如果分别建立唯一...
  • 一个数据表,需要两个字段联合起来一块做主键的时候。举例如下: 直接用sql语句的话如下 ALTER TABLE `表名` ADD PRIMARY KEY ( `表中字段名1` , `表中字段名2` ) ; 或者在phpmyadmin中操作,如下图: ...
  • mysql设置2个主键

    万次阅读 2017-08-25 22:04:08
    当有2个主键或者以上的时候,可以有些主键是相同的 其次mysql不能这样设置2个主键create table hello(id int primary key,name varchar(40) primary key);会报错!!! 应该是create table hello(id int,name ...
  • 【数据库和SQL学习笔记】1.SQL语言的功能和特点,数据定义语言和应用,主键和外键
  • 这篇文章技术指导为sql进行两个关联表,根据其中一个表的一个属性进行条件查询查询 假设只有两张表,其中一张表最后一个外键连接到另一张表的主键,那我想通过其中一个属性,进行全部查询或者是条件查询 第一章表 ...
  • SQL表中可不可以没有主键

    千次阅读 2019-03-14 13:53:00
    主键的作用: 1)保证实体的完整性; 2)加快数据库的操作速度 3)在表中添加新记录时,数据库会自动检查新记录的主键值,不允许该值与其他记录的主键值重复。 4) 数据库自动按主键值的顺序显示表中的...这两个...
  • SQL主键和外键的设置语法

    万次阅读 多人点赞 2017-06-29 10:27:52
    (1)插入非空值时,如果主键表中没有这值,则不能插入。 (2)更新时,不能改为主键表中没有的值。 (3)删除主键表记录时,你可以在建外键时选定外键记录一起级联删除还是拒绝删除。 (4)更新主键记录时,同样有级联...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 165,378
精华内容 66,151
关键字:

sql定义两个主键