sqlserver 创建和删除table 主键

本文介绍如何使用SQL语句删除及创建数据库表中的主键约束。首先通过查询sysobjects来找到指定表的现有主键名称,然后执行动态SQL来移除该主键。接着展示如何为表添加新的主键约束。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--删除主键

Declare @Pk varChar(100);

Select @Pk=Name from sysobjects where Parent_Obj=OBJECT_ID('tb_name') and xtype='PK';

if @Pk is not null

exec('Alter table tb_name Drop '+ @Pk)

--创建主键

ALTER Table tableName ADD CONSTRAINT pkName PRIMARY KEY (pkfield)

 

 

 

 

### SQL Server 2014 中创建表并定义主键 在 SQL Server 2014 中,可以通过 `CREATE TABLE` 语句中的约束条件来定义主键主键是一种特殊的唯一性约束,它确保每条记录都具有唯一的标识符,并且不允许为空值。 以下是具体的语法描述以及示例: #### 主键定义的语法 主键可以在创建表时通过 `PRIMARY KEY` 关键字指定。可以将其作为单独的一列属性,也可以组合多列共同构成复合主键[^1]。 ```sql CREATE TABLE table_name ( column1 datatype [CONSTRAINT], column2 datatype [CONSTRAINT], ... PRIMARY KEY (column_list) ); ``` 其中: - `table_name`: 表名。 - `column1`, `column2`: 列名及其对应的数据类型。 - `PRIMARY KEY`: 定义主键的关键词。 - `column_list`: 单个或多个组成主键的列名列表。 #### 示例:单列主键 如果只需要单一列作为主键,则可以直接在该列声明后附加 `PRIMARY KEY` 属性[^3]。 ```sql CREATE TABLE Employees ( EmployeeID INT NOT NULL PRIMARY KEY, FirstName NVARCHAR(50), LastName NVARCHAR(50), HireDate DATE ); ``` 在此例子中,`EmployeeID` 被设定为主键,并且其值不能为空。 #### 示例:多列组成的复合主键 当需要由两个或更多字段联合起来形成独一无二的识别码时,可采用如下方式实现复合主键: ```sql CREATE TABLE Orders ( OrderID INT NOT NULL, ProductID INT NOT NULL, Quantity INT, CONSTRAINT PK_Orders PRIMARY KEY (OrderID, ProductID) ); ``` 这里展示了如何利用 `CONSTRAINT` 明确命名主键约束,并指定了 `OrderID` `ProductID` 组成的复合主键。 ### 自动增长的主键(IDENTITY) 对于希望自动递增数值类型的主键,在 SQL Server 中还可以使用 IDENTITY 属性。 ```sql CREATE TABLE Customers ( CustomerID INT IDENTITY(1,1) PRIMARY KEY, CompanyName NVARCHAR(100), ContactName NVARCHAR(100) ); ``` 上述代码片段设置了 `CustomerID` 字段为自动增加型主键,初始值设为 1 ,每次新增一条记录则加 1。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值