SQL裡面怎麼設定複合主鍵,怎樣在sql server中建立複合主鍵

2022-03-19 09:08:17 字數 5765 閱讀 4585

1樓:匿名使用者

create table [userrole] (a int not null,

b int not null, c int not null,

primary key(a,b)

) ;這是在查詢分析器裡執行的。

如果手工建表的話,只需按住ctrl鍵同時選擇兩個欄位就可以設定複合主鍵了。

2樓:匿名使用者

企業管理器中,設計表,按住ctrl選擇欄位,再點設定鍵值的按鈕就搞定了。

其實就是複選操作,上面幾位說的應該也是對的,只是他們有指令碼實現。

3樓:匿名使用者

create table [dbo].[t]([a] [int] not null,

[b] [int] not null,

[n] [nvarchar](100) null,constraint [pk_t] primary key clustered

([a] asc,

[b] asc

)with (ignore_dup_key = off) on [primary]

) on [primary]

怎樣在sql server中建立複合主鍵

4樓:普實軟體

方法一:建立表之後

alter table table_name add primary key(欄位1,欄位2)

方法二:create table 表名 (欄位名1 int not null,

欄位名2 nvarchar(13) not null欄位名3…………

欄位名n…………)

goalter table 表名 with nocheck addconstraint [pk_表名] primary key nonclustered

(  [欄位名1],

[欄位名2]

)  go

5樓:匿名使用者

sql server建立複合主鍵的2種方法建立複合主鍵: 方法一:建立表之後,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

6樓:匿名使用者

create table test

(id int primary key,

id1 int primary key,

co2 varchar(max))

7樓:匿名使用者

選擇2列然後點設定主鍵

怎麼在已有表上設定複合主鍵(表中已有主鍵,還要在加幾個主鍵)用sql語句

8樓:匿名使用者

資料庫表只能有一個主鍵,

你要再想加的話,只能用唯一索引 + 非空約束即可。

9樓:流浪雲風

例如:已有一個表test_key,其中a1列為主鍵。

create table test_key

(a1 varchar2(3) not null,

a2 varchar2(3),

b1 varchar2(3),

b2 varchar2(3)

);alter table test_key

add constraint pk_test_key primary key (a1)

using index;

現在要將a2,b1也增加到主鍵中與原有的a1一起組成複合主鍵。語句如下:

alter table test_key

drop constraint pk_test_key cascade;

alter table test_key

add constraint pk_test_key primary key (a1, a2, b1)

using index;

這樣就可以了。

sql server 2008如何在建立了表之後設定複合主鍵

10樓:匿名使用者

create table t

(a int,

b int,

c int,

d int

)--**(可空列不能建立主鍵,所以先修改為not null)

alter table t alter column a int not null

alter table t alter column b int not null

alter table t alter column c int not null

alter table t add constraint pk_t primary key clustered(a,b,c)

--或者

--選中表->右鍵->設計->選擇列(按ctrl多選)->右鍵->設定主鍵->儲存

在sql中,如何在複合主鍵上創立外來鍵?

11樓:糖糖寳寳

語法:①建立時:create table sc (studentno int,

courseid int,

score int,

foreign key (courseid) );

②修改時:

alter table news_info[子表名] add constraint fk_news_info_news_type[約束名] foreign key (info_id)[子表列] references news_type[主表名] (id)[主表列] 。

sql server 怎麼建立聯合主鍵?

12樓:匿名使用者

建立聯合主鍵有兩種方式:

一種是在建表時就寫出,語句如下:

create table 表名 (欄位名1 int not null,

欄位名2 nvarchar(13) not null primary key (欄位名1, 欄位名2),

欄位名3…………

欄位名n………… )

另一種是在建表後更改,語句如下:

alter table 你的表名 add constraint pk_你的表名  primary key (欄位1,欄位2)

alter table 表名 with nocheck add

constraint [pk_表名] primary key  nonclustered

[欄位名1],

[欄位名2]

建立聯合主鍵還可以這樣寫:

create table huayunkeji_today(device_id int , year int, month int, day int, hour int, temperature float, humidity float,

primary key(device_id,year,month,day,hour));

13樓:金坷垃

一、sql server建立聯合主鍵方法:

1、在建表時就寫出,語句如下:

create table 表名 (欄位名1 int not null,

欄位名2 nvarchar(13) not null primary key (欄位名1, 欄位名2),

欄位名3…………

欄位名n………… )

2、在建表後更改,語句如下:

alter table 表名 with nocheck add

constraint [pk_表名] primary key  nonclustered

[欄位名1],

[欄位名2]

二、聯合主鍵的好處:

用2個欄位(或者多個欄位,後面具體都是用2個欄位組合)來確定一條記錄,說明,這2個欄位都不是唯一的,2個欄位可以分別重複,這麼設定的好處,可以很直觀的看到某個重複欄位的記錄條數。

三、使用聯合主鍵情況:

比如,你的訂單表裡有很多欄位,一般情況只要有個訂單號bill_no做主鍵就可以了,但是,現在要求可能會有補 充訂單,使用相同的訂單號,那麼這時單獨使用訂單號就不可以了,因為會有重複。那麼你可以再使用個訂單序列號bill_seq來 作為區別。把bill_no和bill_seq設成聯合主鍵。

即使bill_no相同,bill_seq不同也是可以的。

例子如下:

主鍵a跟主鍵b組成聯合主鍵,主鍵a跟主鍵b的資料可以完全相同,聯合就在於主鍵a跟主鍵b形成的聯合主鍵是唯一的。

下例主鍵a資料是1,主鍵b資料也是1,聯合主鍵其實是11,這個11是唯一值,絕對不充許再出現11這個唯一值。(這就是多對多關係)

主鍵a資料 主鍵b資料

1      1

2      2

3      3

主鍵a與主鍵b的聯合主鍵值最多也就是

11 12

13 21

22 23

31 32

14樓:文件類共創空間

參考**如下:

create table t(id int not null,id2 int not null ,constraint pk_t primary key(id,id2))

聯合主鍵用於欄位中內容都可重複的表。

如公司部門人員表,裡面包含部門名,職工姓名等欄位, 每個部門中的人無重名,部門間可能有重名,如果設部門名為主鍵,則部門裡有不止一個人,部門名有重複,如果設姓名為主鍵,則部門間人員可能有重名,也不唯一。

將部門名和職工姓名一起設為主鍵,這兩個欄位加起來不可能重複。

15樓:匿名使用者

可直接用sql語句。

一種是在建表時就寫出,語句如下:

create table 表名 (欄位名1 int not null,

欄位名2 nvarchar(13) not null primary key (欄位名1, 欄位名2),

欄位名3…………

欄位名n………… )

另一種是在建表後更改,語句如下:

alter table 表名 with nocheck addconstraint [pk_表名] primary key  nonclustered

([欄位名1],

[欄位名2])

16樓:匿名使用者

聯合主鍵就是確定一條記錄的唯一性啊

比如這種時候

商品品牌 商品型號

諾基亞 920

三星 note2

諾基亞 8088

比如這樣商品品牌可能有重複,都是諾基亞,但是諾基亞廠商生產的商品型號是不會重複的

也比如,可能好多品牌都有920這個型號,但是一個品牌只有一個920的型號

所以就靠這樣的聯合主鍵來確定這條記錄的唯一性建立方法如下

create table product(pro_name varchar(20),pro_type varchar(20),primary key (pro_name,pro_type));這就是隨便給你舉個例子

判斷主鍵是否存在,存在則刪除,用SQL怎麼寫

主要是bai 查詢all tables表的dutable name和owner,如果表存在zhi,dao則執行execute immediate drop table table name sql 版 判斷表是否存在,如果存在則刪權除declarenum number beginselect cou...

SQL裡面怎麼去除重複的

建議你分步驟做 第一步,select into b from 表 where 1 2 給 b 表增加一個不重複的關鍵字索引 值1 索引然後再 select into b from 表 這樣就過濾掉了 值1 的重複項 第二步,你使用select 值2 count 值1 from 表 group by ...

下面這句怎麼修改可以在SQL裡面執行

1.datediff d now adstopdate 改成 datediff d getdate adstopdate 在sql裡沒有now 這個函式。2.datediff d now adstopdate 改成。sql修改語句,新手求助 update 表名。set 姓名 華哥 要改成什麼wher...