T-SQL 创建触发器 禁止插入空值
---假设在SQL SERVER 2005里面有一张表,其中有两个字段需要做唯一性约束,
---不能有重复值,但是允许其为空值,如果都是空值,则允许重复
CREATE TRIGGER [dbo].[insert]
ON [dbo].[table1]
INSTEAD OF INSERT
AS
BEGIN
declare @i int;
declare @errmsg char;
declare cursor1 cursor for
select count(*) num from inserted i, table1 t
where (i.col1=t.col1 and i.col2=t.col2 and i.col1 is not null and t.col1 is not null)
or (i.col1 is null and i.col2=t.col2)
or (i.col2 is null and i.col1=t.col1); open cursor1;
fetch cursor1 into @i;
close cursor1; if (@i=0)
insert into table1 select * from inserted;
else
begin
set @errmsg='存在重复记录,插入失败';
RAISERROR(@errmsg,16,1);
rollback;
end
END
T-SQL 创建触发器 禁止插入空值的更多相关文章
- SQL创建触发器
更新: CREATE TRIGGER `r_users_1` AFTER UPDATE ON `users` FOR EACH ROW update `wxusers` set status=NEW. ...
- sql创建临时表并且插入数据
if OBJECT_ID('tempdb..#temp') is not null drop table #temp select * into #temp from ( --select * fro ...
- SQL Server 触发器创建、删除、修改、查看示例
一﹕ 触发器是一种特殊的存储过程﹐它不能被显式地调用﹐而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活.所以触发器可以用来实现对表实施复杂的完整性约`束. 二﹕ SQL Server为每个触发 ...
- SQL Server触发器创建、删除、修改、查看
一:触发器是一种特殊的存储过程,它不能被显式地调用,而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活.所以触发器可以用来实现对表实施复杂的完整性约束. 二:SQL Server为每个触发器都创 ...
- SQL Server触发器创建、删除、修改、查看示例步骤
一﹕ 触发器是一种特殊的存储过程﹐它不能被显式地调用﹐而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活.所以触发器可以用来实现对表实施复杂的完整性约`束. 二﹕ SQL Server为每个触发 ...
- SQL关于触发器及存储过程的创建
使用T-SQL语句来创建触发器 基本语句如下﹕ create trigger trigger_name on {table_name | view_name} {for | After | Ins ...
- 在论坛中出现的比较难的sql问题:9(触发器专题 插入数据自动更新表数据)
原文:在论坛中出现的比较难的sql问题:9(触发器专题 插入数据自动更新表数据) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所 ...
- SQL Server 创建触发器(trigger)
update 触发器: if(OBJECT_ID('trigger_compost_up') is not null) drop trigger trigger_compost_up go creat ...
- 使用带参数的SQL语句向数据库中插入空值
private void button1_Click(object sender, EventArgs e) { string name = textBox1.Text; int age = Conv ...
随机推荐
- 【ABAP系列】SAP LSWM处理时,网络中断,出现错误
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP LSWM处理时,网络中断 ...
- Java中的基本类型和包装类型区别
首先看一下几个测试题,验证一下java中对基本类型和包装类型的理解,看看最后输出的答案对不对,答案在这篇博客中哦: // 第一题: 基本类型和包装类型 int a = 100; Integer b = ...
- 使用多线程开启OCR
需求:经过opencv 或者其他算法对一张图片里面的文字内容进行切割,获取到切割内容的坐标信息,再使用ocr进行识别.一张一张识别太慢了,我们可以开启多线程识别.代码如下 threads = [] f ...
- 08 (h5*) js第9天--原型、继承
目录: 1:原型和原型链 2:构造函数的原型可以改变 3:原型的最终指向 4:先修改原型指向,在添加方法. 5:实例对象中的属性和原型属性重合, 6:一个神奇的原型链 7:继承 8:原型链 9:利用c ...
- Learning OSG programing---osgShape
本例示范了osg中Shape ---- 基本几何元素的绘制过程.参照osg官方文档,Shape 类包含以下子类: 在示例程序中,函数createShapes函数用于生成需要绘制的几何形状. osg:: ...
- Jenkins搭建,节点配置
一.服务器安装jdk和Jenkins 二.安装完成后打开jenkins页面:http://localhost:8080,设置管理员密码后登陆进去. 三.系统管理->全局变量,勾选允许用户注册 ...
- (转载)Solr4.x在Tomcat下的部署
Step1 下载安装包: 下载最新版本安装包 点击此处下载Tomcat 点击此处下载Solr Step2 解压: 解压Tomcat和Solr Step3 拷贝War包: 拷贝\solr-4.x\ ...
- bootstrap-select、datatables插件使用
1.引入样式文件 <%--引入bootstrap_select样式--%> <link rel="stylesheet" type="text/css& ...
- python面试题之Python 的特点和优点是什么
Python 可以作为编程的入门语言,因为他具备以下特质: 1. 解释性 2. 动态特性 3. 面向对象 4. 语法简洁 5. 开源 6. 丰富的社区资源 7 库丰富 文章转载自Python黑洞网
- each of which 用法
each of which 在以下為 同位語,非關代. 1. An urn contains two balls, each of which is known to be either white ...