sqlServer主键设置自增

sqlserver id自增

  • 研究了navicat没有直接添加字段时设置自增,只能够在使用sql创建表格时去进行设置id的自增
    [id] [int] identity(1,1) NOT NULL
  • 全部创建语句:
USE [SCM_DB]
GO

/****** Object:  Table [dbo].[base_store_data]    Script Date: 2023/11/29 10:08:59 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[base_store_data](
	[id] [int] identity(1,1) NOT NULL,
	[createDate] [date] NULL,
	[updateDate] [date] NULL,
	[isDelete] [int] NULL,
PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

### 在 SQL Server 中设置主键列的方法 在 Microsoft SQL Server 中,可以通过 `IDENTITY` 属性为表中的某一列设置功能。此属性通常用于定义一个整数类型的列,并使其具备自动递的能力。以下是具体实现方式: #### 创建新表时设置主键 当创建一张新表时,可以直接指定某列为自主键。语法如下所示: ```sql CREATE TABLE TableName ( Id INT IDENTITY(1, 1) PRIMARY KEY, ColumnName1 DataType Constraints, ColumnName2 DataType Constraints, ... ); ``` 在此示例中,`Id` 列被定义为整型 (`INT`) 并启用了 `IDENTITY(1, 1)` 属性[^1]。这意味着该列将以初始值 `1` 开始并按步长 `1` 自动递。同时,它还被标记为主键 (`PRIMARY KEY`)。 例如,要创建名为 `Employees` 的表格,其中包含员工编号作为唯一的自主键以及姓名和其他信息,则可以这样写: ```sql CREATE TABLE Employees ( EmployeeID INT IDENTITY(1, 1) PRIMARY KEY, FirstName NVARCHAR(50), LastName NVARCHAR(50), HireDate DATE ); ``` #### 修改现有表以添加自主键 对于已经存在的表,如果需要为其加一个新的自主键列,操作稍微复杂一些。首先应确认当前是否有其他约束阻止直接更改结构;如果有冲突(比如已有主键),则需先移除这些障碍再执行后续步骤。 假设有一个叫做 `Products` 的表,现在想加入产品编码这一项作为新的自主键: 1. 删除旧有的主键或其他可能干扰的索引/约束。 ```sql ALTER TABLE Products DROP CONSTRAINT PK_Products; ``` 2. 添加新的自主键列。 ```sql ALTER TABLE Products ADD ProductCode INT IDENTITY(1, 1) PRIMARY KEY; ``` 注意,在实际应用过程中应当谨慎对待删除原有主键的行为,因为这可能会破坏外键关系或者影响到依赖于原主键的应用逻辑[^2]。 另外需要注意的是,一旦设置了某个字段为身份列之后就不能再次改变它的特性或重新初始化种子值除非重建整个表结构[^4]。 ### 示例代码展示 这里提供一段完整的脚本用来演示如何新建带自主键的表以及向里面插入记录的过程: ```sql -- Step 1: Create a new table with an auto-incrementing primary key. CREATE TABLE Orders ( OrderID INT IDENTITY(100, 1) PRIMARY KEY, -- Start at 100 and increment by 1 each time. CustomerName NVARCHAR(MAX), TotalAmount DECIMAL(18, 2) ); -- Step 2: Insert some sample data into the newly created 'Orders' table. INSERT INTO Orders(CustomerName, TotalAmount) VALUES ('John Doe', 99.99); INSERT INTO Orders(CustomerName, TotalAmount) VALUES ('Jane Smith', 75.50); -- Verify inserted rows along with their automatically generated IDs. SELECT * FROM Orders; ``` 以上就是关于如何在SQL Server里配置自主键的相关说明及实例解析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值