sql设置主键

alter table yourtable add constaints ConstaintName primarykey(columnNmae)

or

create table yourtable(column1 int primary key,....)

--增加列
alter table [TableName] add [P_ID] bigint not null default 0
--删除列
alter table [TableName] drop column [P_ID]
--设置主键
alter table [TableName] add constraint PK_TableName primary key (P_ID)
--删除主键
alter table [TableName] drop constraint PK_TableName
--创建聚集索引(一个表中允许一个聚集索引)
CREATE CLUSTERED INDEX [tTopIndex] ON [TableName] ([P_ID]) ON [PRIMARY]
--创建非聚集索引
CREATE INDEX [tTopIndex] ON TableName ([P_ID]) ON [PRIMARY]
--删除索引
drop index [TableName].[tTopIndex]
--增加字段说明
EXECUTE sp_addextendedproperty N'MS_Description', N'照片ID', N'user', N'dbo', N'table', N'TableName', N'column', N'P_ID'

 

http://hi.baidu.com/llbbqq99/blog/item/8216d903e891d77a3912bbd5.html

### 如何在 SQL 中创建主键和外键约束 #### 主键的定义与创建 主键是一种用于唯一标识表中每一行记录的机制。它确保每条记录具有唯一性,并且不允许为空值。可以通过 `CREATE TABLE` 或者 `ALTER TABLE` 语句来定义主键。 以下是使用 `CREATE TABLE` 定义主键的示例: ```sql CREATE TABLE users ( user_id INT PRIMARY KEY, -- 设置 user_id 字段为主键 username VARCHAR(50), email VARCHAR(100) ); ``` 如果需要在一个已经存在的表上添加主键,则可以使用 `ALTER TABLE` 语句[^4]: ```sql ALTER TABLE users ADD CONSTRAINT pk_user_id PRIMARY KEY (user_id); ``` #### 外键的定义与创建 外键是用来建立两个表之间关系的一种约束条件。它可以确保子表中的某个字段始终引用父表中存在的有效值。外键通常关联到另一个表的主键或唯一索引字段。 ##### 使用 CREATE TABLE 创建外键 可以在创建新表的同时指定外键约束。以下是一个例子,展示如何在外键字段中引用另一张表的主键[^3]: ```sql CREATE TABLE orders ( order_id INT PRIMARY KEY, user_id INT, amount DECIMAL(10, 2), CONSTRAINT fk_orders_users FOREIGN KEY (user_id) REFERENCES users(user_id) ); ``` 在这个例子中,`orders` 表中的 `user_id` 列作为外键,指向 `users` 表的 `user_id` 主键。 ##### 使用 ALTER TABLE 添加外键 对于已有的表,也可以通过 `ALTER TABLE` 来添加外键约束[^1]: ```sql ALTER TABLE orders ADD CONSTRAINT fk_orders_users FOREIGN KEY (user_id) REFERENCES users(user_id); ``` 需要注意的是,在设置外键时,所涉及的数据类型应当一致或者兼容,并且目标表以及对应的列必须存在[^2]。 #### 删除主键或外键 当不再需要某些约束时,可以将其移除。例如,要删除一个主键约束,可执行如下命令: ```sql ALTER TABLE users DROP CONSTRAINT pk_user_id; ``` 而对外键的删除操作则类似于下面的形式: ```sql ALTER TABLE orders DROP CONSTRAINT fk_orders_users; ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值