函数+check 解决多表数据间的约束
来源:互联网 发布:青骓投资 域名 编辑:程序博客网 时间:2024/04/29 15:56
函数+check 解决多表数据间的约束
--需求
/*
有以下两个资料表:
Restable
id int
IStatus bit
RestableS
id int
要求:当RestableS表中存在与Restable相同的ID时,Restable表的IStatus字段不允许更改值为0,这个约束应该如何实现?
*/
--建立测试表
IF OBJECT_ID('Restable') IS NOT NULL DROP TABLE Restable
GO
CREATE TABLE Restable (id int,IStatus bit)
GO
IF OBJECT_ID('RestableS') IS NOT NULL DROP TABLE RestableS
GO
CREATE TABLE RestableS (id int)
--创建函数
if object_id('f_checkRS') is not null drop function f_checkRS
go
create function f_checkRS(@ID int)
returns INT
as
begin
declare @r int
if exists (select 1 from RestableS where ID=@ID)
set @r=0
else
set @r=2
return @r
end
go
--创建约束:
--不指定约束名,创建check
--alter table Restable add check(IStatus<>dbo.f_checkRS(id))
--指定约束名,创建check
alter table Restable add Constraint statusCK check(IStatus<>dbo.f_checkRS(id))
go
--测试
insert RestableS values(1)
--(1 行受影响)
insert Restable values(1,0)
--结果
/*
消息 547,级别 16,状态 0,第 4 行
INSERT 语句与 CHECK 约束"statusCK"冲突。该冲突发生于数据库"master",表"dbo.Restable"。
*/
insert Restable values(1,1)
--(1 行受影响)
insert Restable values(2,0)
--(1 行受影响)
insert Restable values(3,null)
--(1 行受影响)
insert RestableS values(2)
--(1 行受影响)
--如果说 Restable 表先插入数据,则约束始终符合
--当 RestableS 中插入了与其id相同的数据后,不影响 Restable 表以前插入的数据
--用下面语句检测数据是否符合约束
alter table Restable with check check constraint statusCK
/*
消息 547,级别 16,状态 0,第 1 行
ALTER TABLE 语句与 CHECK 约束"statusCK"冲突。该冲突发生于数据库"master",表"dbo.Restable"。
*/
- 函数+check 解决多表数据间的约束
- oracle的check约束
- mysql 的 check约束
- 表CHECK 约束
- SQL 数据库 学习 010 表和约束的区别、check约束、default约束、unique约束、not null约束
- 数据库的检查约束check约束
- 数据库的检查约束check约束
- SQL-CHECK约束的用法
- check约束
- check约束
- check 约束
- oracle约束+check+暴力删除表,无视外键+查看用户创建的表+查看约束
- MySQL的check约束无效怎么办?
- sql server 的check约束总结随笔
- 解决sql脚本导入Oracle重复生成check约束问题
- SqlServer数据库用check约束保证数据完整性【新手教程】
- SqlServer数据库用check约束保证数据完整性
- SQL用check约束实现非工作时间不得修改数据
- 有关android中加载MP4,3gp等视频文件,无法播放问题的解决
- NP问题 笔记
- dedecms会员数据调用方法大全
- IP Camera 网络连接方案 端口映射和开放IP地址,需要公网固定IP地址或域
- 商品交易系统之---集合竞价与连续竞价区别
- 函数+check 解决多表数据间的约束
- dedecms【小技巧】点击作者姓名可以进入作者空间,支持V5.01
- 装网络摄像机 IP Camera 之实用实战篇
- 来吧朋友
- 网络摄像机(ip camera)安装设置步骤
- Qt widgetgallery总结
- U盘 移动硬盘提示格式化 怎么办 属性为0字节了 文件格式变RAW了
- 商品交易系统之---会员、客户、交易员关系
- 防采集 - 最看不起采集,一点技术含量都没有!