某表,多字段关联,多种约束,如何做(触发器实现代码)?
来源:互联网 发布:斗鱼威海大叔淘宝店 编辑:程序博客网 时间:2024/05/19 11:47
表AAA存在字段 ID(主键)、No( int 序号)、Name( varchar名字),如何保证同一个Name下No<64且不重复?
为什么触发器在空表时也会有一条记录存在?
--本想用CHECK来做,在网上问了好久也没有问出来,只能写触发器了。ALTER TRIGGER [Trigger_IM_Ammeter]on [dbo].[IM_Ammeter]for INSERTasBEGINdeclare@Ammeter_Number_i intdeclare@Terminal_Id_i intdeclare@QueryCount intSELECT @Ammeter_Number_i=inserted.Ammeter_Number_i, @Terminal_Id_i=inserted.Terminal_Id_i From insertedIf (@Ammeter_Number_i>64)Beginraiserror('序号只能<=64',16,1) rollback transaction returnEnd --print('@Ammeter_Number_i='+convert( varchar(50),@Ammeter_Number_i))--print('@Terminal_Id_i='+convert( varchar(50),@Terminal_Id_i))SELECT @QueryCount=Count(*) From IM_Ammeter Where Terminal_Id_i = @Terminal_Id_i And Ammeter_Number_i = @Ammeter_Number_iprint('@QueryCount='+convert( varchar(50),@QueryCount))if(@QueryCount>1)--空值也等于1,不知道为什么Begin--raiserror('同一个终端下的电表序号不能重复',16,1) rollback transaction returnEnd--以下没有找到代码的问题?在触发器中,准备插入的记录放入缓存中,也当一条记录在用,如果是存储过程中以下代码就没有问题了。 --If Exists(Select Ammeter_Number_i From IM_Ammeter --Where Terminal_Id_i = @Terminal_Id_i --And Ammeter_Number_i = @Ammeter_Number_i)--Begin--raiserror('同一个终端下的电表序号不能重复',16,1)-- rollback transaction-- return--EndENDGO
- 某表,多字段关联,多种约束,如何做(触发器实现代码)?
- SQL Server 触发器的使用,实现多字段自增长
- 多字段相同值约束
- 仿站技巧二十四-织梦(dedecms)如何实现多字段搜索功能?
- WPF 多种触发器代码
- oracle多表关联多字段update
- mysql多表多字段关联删除
- springmvc实现多字段查询
- 代码添加约束如何实现
- SQL server触发器实例讲解(如何实现两个表的关联)
- 对XML实现自定义、多字段排序
- 对XML实现自定义、多字段排序
- 对XML实现自定义、多字段排序
- MySQL简单实现多字段模糊查询
- Linq to sql 实现 group by 统计多字段 返回多字段
- Linq to sql 实现 group by 统计多字段 返回多字段
- odoo/openerp 多字段搜索(name_search)
- mysql多字段排序(去null)
- android (8)
- SAP BW个人学习笔记
- SQL2005有几种约束?如何使用?
- 时分复用技术(time-division multiplexing, TDM, TDMA)
- cuda线程
- 某表,多字段关联,多种约束,如何做(触发器实现代码)?
- [转]Hibernate配置文件详解
- png中的filter问题
- 使用terrier3.5建立meta index
- C++学习---类继承之抽象基类
- vs2005下部分断点无效的问题
- Oracle错误总结
- 单例模式的一些弊端
- VS2005下断点无效 解决方法