什麼是約束?
一、主鍵約束(PRIMARY KEY)
CREATE TABLE [dbo].[Company]( [Id] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL, [Name] [varchar](50) NULL, [CreateTime] [datetime] NULL, [CreatorId] [int] NOT NULL, [LastModifierId] [int] NULL, [LastModifyTime] [datetime] NULL, [NewName] [dbo].[CompanyName] NULL, CONSTRAINT [PK_Company] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY]
二、外鍵約束
USE [ZhaoxiEdu] GO ALTER TABLE [dbo].[SysUser] WITH NOCHECK ADD CONSTRAINT [FK_SysUser_Company] FOREIGN KEY([CompanyId]) REFERENCES [dbo].[Company] ([Id]) GO ALTER TABLE [dbo].[SysUser] CHECK CONSTRAINT [FK_SysUser_Company] GO
三、Not Null約束
update [ZhaoxiEdu].[dbo].[Company] set NewName=null where id=2
四、唯一約束/唯一索引
USE [ZhaoxiEdu] GO /****** Object: Index [IX_SysUser] Script Date: 2022/8/24 16:04:17 ******/ ALTER TABLE [dbo].[SysUser] ADD CONSTRAINT [IX_SysUser] UNIQUE NONCLUSTERED ( [Name] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] GO
五、檢查約束
USE [ZhaoxiEdu] GO ALTER TABLE [dbo].[SysUser] WITH CHECK ADD CONSTRAINT [CK_SysUser] CHECK (([age]>(0))) GO ALTER TABLE [dbo].[SysUser] CHECK CONSTRAINT [CK_SysUser] GO