❶ sqlserver 有个2个相同主键 为何不报错
首先:看看是否是组合键
其次:select distinct 主键字段 from 表,判断是否这个值是相同的
其次:主键是否建了,看看主键是否有生效
insert into t values(2,1..); --插入两行相同的值试试看
最后:you know!
❷ 我用的SQLserver数据库 一张表怎么有两个主键 还有张表一个主键都没有 是不是每张表都要设主键
主键在表中不是必须的,但是为了设计规范每张表都有一个自增长主键。以便于以后查询等功能的使用。
两个主键是联合主键,这个你查资料了解一下!
❸ 请问SQLserver中的主键和外键的作用
主键是对表的约束,保证数据的唯一性!
外键是建立表于表之间的联系,方便程序的编写!!
❹ 一个表可以设2个主键吗
可以的 有联合主键这一说的 具体建立方法如下
SQL建立主键有两种方法:一种是在数据库提供的GUI环境中建立,另一种是通过SQL语句执行建立
1.在数据库提供的GUI环境中建立
输入表信息后按Ctrl键同时选中多行,然后点上面的主键按钮就行了。
2.通过SQL语句执行建立。又分两种,一是在建表语句中直接写,二是建表之后更改表结构。
1)在建表语句中直接写:
Create Table 表名 (字段名1 Int Not Null,
字段名2 nvarchar(13) Not Null Primary Key (字段名1, 字段名2),
字段名3…………
字段名N………… )
2)建表之后更改表结构:
CREATE TABLE 表名 (字段名1 Int Not Null,
字段名2 nvarchar(13) Not Null
字段名3…………
字段名N…………)
GO
ALTER TABLE 表名 WITH NOCHECK ADD
CONSTRAINT [PK_表名] PRIMARY KEY NONCLUSTERED
(
[字段名1],
[字段名2]
)
GO
////////////////////////////////////////////////////////////////////////////////
--删除
alter table 你的表 drop constraint 主键名
go
--修改
ALTER TABLE 你的表 ALTER COLUMN 列名 你的类型
go
--增加
alter table 你的表 add constraint 主键名 primary key (列名)
go
设置默认值:
sqlserver的是
alter table students add constraint c_students_sex default '男' for Ssex
给该列添加约束之前先去掉该列上的约束
❺ sql server2005 在建立表时怎么直接写两个主键
--使用SQL语句创建主键约束可以在创建表(Create
Table)或修改表(Alter
Table)时进行
创建。
--例创建表时
create
table
tablename
(
id
int
(CONSTRAINT
pk_id)
PRIMARY
KEY
)
--例修改表时
ALTER
TABLE
tablename
--修改表
ADD
CONSTRAINT
tb_PRIMARY
PRIMARY
KEY
CLUSTERED
(列名)
/*将你要设置为主键约束的列*/
--用命令创建默认值对象,并与表中字段绑定.
--使用SQL语句创建主默认值对象可以在创建表(Create
Table)或修改表(Alter
Table)时进行
创建。
--例创建表时
create
table
tablename
(
id
int
DEFAULT
0
)
--例修改表时
ALTER
TABLE
tablename
--修改表
ADD
CONSTRAINT
tb_DEFAULT
DEFAULT
'10011'
FOR
列名
/*将你要设置为默认值对象的列*/
--用命令创建CHECK约束定义某字段.
USE
销售管理系统
--引入数据库
ALTER
TABLE
销售表
--修改表
ADD
CONSTRAINT
ck_sl
--创建检查约束
CHECK
(数量
>=
1
and
数量
<=
10000)
--添加约束条件
--用命令创建规则对象,并与表中字段绑定.
--创建规则使用CREATE
RULE语句创建
CREATE
RULE
RULE_AGE
--创建规则
AS
@AGE
!>
40
--规则条件不能大于40
CREATE
RULE
list_rule
--创建规则
AS
@list
IN
('1001',
'1002',
'1003')
--规则条件只能输入1001、1002、1003
CREATE
RULE
pattern_rule
--创建规则
AS
@value
LIKE
'_
_-%[0-9]'
--规则条件在任意两个字符的后面跟一个连字符和任意多个字符,并以
0
到
9
之间的整数结尾
--创建好一个规则后,必须使用绑定才能够使用规则,一般情况下,规则可以绑定在用户自定义数据类型或是数据列中。下面可以使用SQL
Server中的系统存储过程sp_bindrule将规则绑定在数据表中。
EXEC
sp_bindrule
'RULE_AGE','操作员信息表.操作员年龄'
--用命令创建用户自定义数据类型,并用该数据类型定义表中字段.
--在“student”数据库中,创建用来存储邮政编码信息的“postalcode”用户定义数据类型。
--SQL语句如下:
USE
student
EXEC
sp_addtype
postalcode,'char(8)
','not
null'
❻ 怎样在SQL SERVER设置双主键或多个主键
首先一个表是不能有两个主键的。但是可以有两个字段组合成一个主键,这就是为什么有时候表里为什么会有两个字段都有主键的标志,那是因为他们组合成了一个主键了。我们可以先删除了原来的主键再用类似下面SQL语句建立:
alter table 你的表名 add constraint pk_name primary key (字段1,字段2);
或者在表设计器里面按住ctrl选中要设置主键的两列再设置主键就OK了.
❼ SQLSERVER两个字段都是主键可以吗
不行的,一个表只能有一个主键,你要想a0和a1都是主键,那么只能让他们成为 组合主键了,分开来是不行的
❽ 如何在sqlserver数据库表中建立复合主键
方法一:创建表之后,alter
table
table_name
add
primary
key(字段1,字段2)
方法二:CREATE
TABLE
表名
(字段名1
Int
Not
Null,
字段名2
nvarchar(13)
Not
Null
字段名3…………
字段名N…………)
GO
ALTER
TABLE
表名
WITH
NOCHECK
ADD
CONSTRAINT
[PK_表名]
PRIMARY
KEY
NONCLUSTERED
(
[字段名1],
[字段名2]
)
GO
方法三:建表后,右键-->设计,选中作为符合主键的列,选中之后右击-->设为主键
❾ SQLserver的主键、外键……等五大键的作用和区别
主键就是可以唯一标示的,比如你的身份证号就是可以做主键,因为它一定唯一标示你,而你的姓名不能是主键,因为有重名的,不能唯一标示你。外键就是和你有关系,但唯一标示的却是别人,比如你爱人的身份证号,当然这样比喻不很贴切,只是好理解而已。