如何用SQL语句约束属性非空且唯一

如何用SQL语句约束属性非空且唯一,第1张

在查询分析器里边执行 alter table 表名 drop constraint 约束名 查看表的约束名执行 sp_helpconstraint 表名 第二个结果集就列出了表的约束,constraint_name就是约束名 或者执行 sp_help 表名 一般第三个结果集中

1、当数据表中存在数据,修改具有默认约束的字段定义时。

2、需要先删除已有约束,才能对字段定义进行修改。

3、而在SQL Server建表时创建的默认约束,其名称后会自动生成一段随机码。

4、因此在删除时需要找到(在SQL Server Management Studio中选择表——>约束,可以看到以DF_开头的默认约束)已有约束名,再进行删除,这一过程较为繁琐。

create table 表名(
(字段和一些行级定义的约束) ,
constraint chk check(id_no <> '')
)

分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:

两个表::

表 tblCommDevice 包含:

CommDevID 整型 从1开始自动增长,增长幅度为1 不允许为空 ,

PersonID 整型 不允许为空 ,
CommType 字符串 20 允许为空,

CommValue 字符串 60 不允许为空

表 tblPerson 包含:

PersonID 整型 从1开始自动增长,增长幅度为1 不允许为空 ,

LastName 字符串 20 不允许为空 ,

FirstName 字符串 20 不允许为空 ,

MailingAddr 字符串 40 允许为空,

City 字符串 20 允许为空,

State 字符串 2 允许为空,

Zip 字符串 10 允许为空,

PersonType 字符串 1 允许为空

索引键: tblCommDevice表 PersonID

索引键: tblCommDevice表 CommType

索引键: tblPerson表 LastName, FirstName

索引键: tblPerson表 FirstName

从表: tblCommDevice表

主表: tblPerson表

关联键:PersonID

用SQL语句怎么写,各位帮帮忙啊

解析:

if exists (select from dbosysobjects where id = object_id(N'[dbo][tblCommDevice]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

drop table [dbo][tblCommDevice]

GO

CREATE TABLE [dbo][tblCommDevice]

(

CommDevID int identity(1,1) not null,

PersonID int not null,

CommType varchar(20) null,

CommValue varchar(60) not null,

CONSTRAINT pk_tblCommDevice PRIMARY KEY CLUSTERED (PetitionID) WITH FILLFACTOR = 90 ON [PRIMARY]

) ON [PRIMARY]

GO

CREATE INDEX [ix_tblCommDevice] ON [dbo][tblCommDevice]([CommType]) WITH FILLFACTOR = 60 ON [PRIMARY]

GO

if exists (select from dbosysobjects where id = object_id(N'[dbo][tblPerson]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

drop table [dbo][tblPerson]

GO

CREATE TABLE [dbo][tblPerson]

(

PersonID int identity(1,1) not null,

LastName varchar(20) not null,

FirstName varchar(20) not null,

MailingAddr varchar(40) null,

City varchar(20) null,

State varchar(2) null,

Zip varchar(10) null,

PersonType varchar(1) null,

CONSTRAINT pk_tblPerson PRIMARY KEY CLUSTERED (PersonID) WITH FILLFACTOR = 90 ON [PRIMARY]

) ON [PRIMARY]

GO

CREATE INDEX [ix_tblPerson] ON [dbo][tblPerson]([FirstName]) WITH FILLFACTOR = 60 ON [PRIMARY]

GO

CREATE INDEX [ix_tblPerson_1] ON [dbo][tblPerson]([LastName], [FirstName]) WITH FILLFACTOR = 60 ON [PRIMARY]

GO


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13074839.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-30
下一篇 2023-05-30

发表评论

登录后才能评论

评论列表(0条)

保存