‘壹’ sql server怎样删除外键约束
1.首先,我们使用SQLSERVER2008打开需要删除外键约束的表,点击左侧的“dbo”通道项,选择“setclick”。
注意事项:
可以双击键约束来添加外键约束,它有四个不同的选项:CASCADE、SETNULL、NOACTION、restricted。
1.级联:删除或更新父表中相应的行,并自动删除或更新表中匹配的行。[在删除CANSCADE和更新CANSCADE都支持InnoDB。
2.SETNULL:删除或更新父表中对应的行,并将子表中的外键列设置为空。注意,这些外键列没有设置为NOTNULL。InnoDB支持删除集空值和更新集空值。
3.无操作:InnoDB拒绝删除或更新父表。
4.限制:拒绝删除或更新父表。
‘贰’ 怎样用sql server2008编写将“部门编号”字段添加外键约束,约束标识为fkbmld.与部
选中要添加外键的表,选择设计
完成
‘叁’ sql server 2008数据库关系图怎么定义主键和约束
1、采用向导定义主键和约束,这个应该很简单
2、使用sql语句声明主键和添加约束
primary key用来声明主键。
添加主键约束语句如:
alter table member
add
constraint PK_member_member_no primary key clustered (member_no)
‘肆’ 关于sql server2008 建表添加约束
CREATETABLE表名
(
stuNovarchar(10)PRIMARYKEY,
stuSexvarchar(8)notnull,
stuAgevarchar(14)notnull
)
ALTERTABLE[表名]ADDCONSTRAINTcheck_stuNoCHECK(stuNolike'S253%')
ALTERTABLE[表名]ADDCONSTRAINTdefault_stuSexDEFAULT'男'FORstuSex
ALTERTABLE[表名]ADDCONSTRAINTcheck_stuSexCHECK(stuSex='男'orstuSex='女')
ALTERTABLE[表名]ADDCONSTRAINTcheck_stuAgeCHECK(stuAgebetween15and50)
‘伍’ SQL Server 2008 如何查看与创建约束
查看或者创建约束都要使用到 Microsoft SQL Server Managment Studio。�0�21. PRIMARY KEY约束在表中常有一列或多列的组合,其值能唯一标识表中的每一行。这样的一列或多列成为表的主键(Primary Key)。一个表只能有一个主键,而且主键约束中的列不能为空值。查看PRIMARY KEY约束可以在object explorer中依次展开Databases –> 选择你要查看的数据库(在我的例子中是testdatabase) –> Tables –> 你要查看的表(在我的例子中是company)-> Columns如上图所示,Primary Key 有一把金色的小钥匙。companyid 即为company表的primary key。�0�2创建PRIMARY KEY约束可以右键点击表,然后选择Design,打开表设计器选中column,点击上面的金色小钥匙,来创建Primary Key。也可以右键点击column,然后选择Set Primary Key。�0�2�0�22. FOREIGN KEY约束外键(Foreign Key)是用于建立和加强两个表(主表与从表)的一列或多列数据之间的连接的。创建约束的顺序是先定义主表的主键,再对从表定义外键约束。查看FOREIGN KEY约束,展开Columns,可以看到灰色的小钥匙为Foreign Key;展开Keys,可以看到Foreign Key约束的名字为FK_contact_company。在表设计器中,也可以点击上面的Relationships按钮,这样就可以查看到所有的Foreign Key约束上面的例子可以看到contact 表的companyid为外键,company 表的companyid为主键。�0�2下面来演示一下如何创建的该Foreign Key约束。同样是点击完Relationships按钮之后,在弹出的对话框中选择Add然后点击下面的红色圆圈内的按钮:按下图中那样设置主表、主键和从表、外键然后点击 OK,不要忘记保存你的设计。�0�2�0�23. UNIQUE约束UNIQUE约束用于确保表中的两个数据行在非主键中没有相同的列值。与PRIMARY KEY约束类似,UNIQUE约束也强制唯一性,但UNIQUE约束用于非主键的一列或多列组合,且一个表可以定义多个UNIQUE约束,另外UNIQUE约束可以用于定义多列组合。�0�2还以company table为例,假设我们要约束company name为唯一的,点击Manage Indexes and Keys然后点击Add来添加Unique约束选择column为companyname, Is Unique为Yes。关闭并保存你的设计,这样一个Unique约束就创建好了。�0�2�0�24. DEFAULT约束若在表中某列定义了DEFAULT约束,用户在插入新的数据行时,如果该列没有指定数据,那么系统将默认值赋给该列,当然该默认值也可以是空值(NULL)。�0�2以contact表为例,在表设计器中,为性别(sex)列填写属性默认值 (‘M’)。�0�2�0�25. CHECK约束CHECK约束用于限制输入一列或多列的值的范围,通过逻辑表达式来判断数据的有效性。一个列的输入内容必须满足CHECK约束的条件,否则数据无法正常输入。�0�2还以contact表为例, 我们要限制sex列的值只能为 �0�7M�0�7 或者 �0�7F�0�7。在表设计器中点击Manage Check Constraints点击Add添加新的constraint点击红圈内的按钮,填写表达式。我们例子中用的表达式是 SEX='M' OR SEX='F'关闭并保存设计。
‘陆’ SQL SERVER2008关于VARCHAR类型的CHECK约束问题
--建立一个表,有两个字段:ID, DataValue
--为 ID 字段建立约束:主键、CHECK
CREATE TABLE [dbo].[TemplateTb](
[ID] [varchar](10) NOT NULL,
[DataValue] [nvarchar](50) NULL,
CONSTRAINT PrimaryKey_UniqueID PRIMARY KEY([ID]),
CONSTRAINT Check_UniqueID CHECK (
LEN([ID])=8 AND
LEFT([ID],2)='00' AND
ISNUMERIC(SUBSTRING([ID],3,2))=1 AND
SUBSTRING([ID],5,1)='_' AND
SUBSTRING([ID],6,3) NOT LIKE '%[^a-zA-Z]%'
)
)
经测试完全OK ,如果你的表已经建立,可在 SQL Server 管理工具中为字段 ID 添加约束,然后把 CHECK 关键字后面的的条件表达式复制到"CHECK 约束"中的“常规”,“表达式”内
‘柒’ 高分求救!! sql server2008建立外键约束的问题。
CourseInfo表中的CourseId必须得是一个属性组成的主码,即CourseInfo中的主码只能是CourseId,不能是(CourseId,TeacherId,DepartmentId),才能建立引用关系。
‘捌’ sql server2008 数据库约束
假设一个表中有A、B两个列名,在Check约束里写:
(A
IS
NULL
AND
B
IS
NOT
NULL)
OR
(B
IS
NULL
AND
A
IS
NOT
NULL)
OR
(A
IS
NOT
NULL
AND
B
IS
NOT
NULL)
问题解决了请采纳,如有疑问请补充!
‘玖’ sql server如何添加约束
--添加unique约束
alter
table
表名
add
constraint
约束名
unique
(规格说明)
--删除原来的约束需要知道约束名
--用sp_helpconstraint取得约束名
exec
sp_helpconstraint
'表名'
执行以后constraint_type列应该有一个是check
on
column
数量
看看constraint_name是什么,然后用以下语句删除
alter
table
表名
drop
constraint
约束名
--添加新的check约束
alter
table
表名
with
nocheck
add
constraint
约束名
check(数量
between
1
and
1000)
‘拾’ SQL Server 2008用SQL语句写出设置出生日期与身份证号之间的约束。
--没用过2008,出生日期和身份证号对比如下:
declare @m varchar(2),@d varchar(2),@bir datetime,@sfz varchar(18)
set @bir = (select birthday from tabname) --从表中取出生日时间
set @sfz = (select sfzh from tabname) --从表中取身份证号
--取月份
set @m = cast(month(@bir) as varchar(2))
if len(@m) = 1
begin
set @m = '0'+@m
end
--取天
set @d = cast(day(@bir) as varchar(2))
if len(@d) = 1
begin
set @d = '0'+@d
end
--取身份证中的出生日期和生日对比。
if substring(@sfzh,7,8) <> cast(year(@bir) as varchar(4)) + @m + @d
begin