[SQL SERVER系列]存储过程,游标和触发器实例[原创]
来源:互联网 发布:怎么加入摄影协会 知乎 编辑:程序博客网 时间:2024/04/30 02:10
自己写的存储过程与游标结合使用的实例,与大家分享,也供自己查阅,仅供参考:
--使用游标循环处理,删除重复的记录 declare @UserID int declare @UserName varchar(32) declare @RealName varchar(32) declare @UnitFlag int declare @Email2 varchar(64) declare @Mobile varchar(64) declare @Start int declare @End int declare @Type varchar(16) declare @IsSubscribe bit declare curEmailTotalLib cursor for (select UserID,UserName,RealName,UnitFlag,Email,Mobile,IsSubscribe from Task_IntermediateData) open curEmailTotalLib --打开游标 fetch next from curEmailTotalLib into @UserID, @UserName, @RealName, @UnitFlag, @Email2, @Mobile, @IsSubscribe while @@fetch_status = 0 --获取成功 begin --在邮件系统总库中不存在此用户ID,不存在此邮箱,并且用户订阅过 if not exists(select * from Task_EmailTotalLib where UserID = @UserID) and not exists(select * from Task_EmailTotalLib where Email = @Email2) and @IsSubscribe = 1 begin set @Start = charindex('@', @Email2, 0) set @End = charindex('.', @Email2, @Start) if @Start != 0 and @End != 0 begin --不是垃圾邮件 if @Email2 is not null and ltrim(rtrim(@Email2)) <> '' begin if not exists(select * from Task_JunkEmail where Email = @Email2) begin begin try set @Type = substring(@Email2, @Start + 1, @End - @Start - 1) if @Type != 'qq' and @Type!='126' and @Type != '163' and @Type!='sina' and @Type !='sohu' and @Type != 'gmail' and @Type!='hotmail' and @Type != 'yahoo' and @Type != '139' and @Type != '263' and @Type !='yeah' and @Type != 'cnki' begin set @Type = 'extra' end insert into Task_EmailTotalLib(UserID, UserName, RealName, Email, Mobile, Priority, MailType, LibType, FpIsSend, CpIsSend, UpIsSend, VpIsSend, WpIsSend, XpIsSend, YpIsSend, ZpIsSend, SendCount, SucCount, FailCount, CreditRate, IsJunkEmail, IsSubscribe, IsUsed, Memo) values(@UserID, @UserName, @RealName, @Email2, @Mobile, 2, @Type, @UnitFlag, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, @IsSubscribe, 0, '') end try begin catch print '@Email2:'+@Email2+'charindex(''@'', @Email2, 0)'+charindex('@', @Email2, 0)+' @Start'+@Start+' @End'+@End+' @End - @Start - 1:'+@End - @Start - 1 end catch end end end end fetch next from curEmailTotalLib into @UserID, @UserName, @RealName, @UnitFlag, @Email2, @Mobile, @IsSubscribe end close curEmailTotalLib --关闭游标 deallocate curEmailTotalLib --释放游标
触发器实例:插入数据时,触发器获取这条数据ID,自动修改,比程序处理更方便。
Create trigger tg_url_update on [dbo].UrlTotal for insert as
declare @getid int;
declare @url varchar(128);
set @getid=(select id from inserted);
set @url='Test.aspx?id='+cast(@getid as varchar(50))
update UrlTotal set url=@url where id=@getid
谢谢阅读~~
0 0
- [SQL SERVER系列]存储过程,游标和触发器实例[原创]
- SQL-SERVER数据库中的游标、存储过程和触发器
- SQL Server 存储过程、触发器、游标
- SQL Server 存储过程、触发器、游标
- SQL存储过程、触发器和游标
- Sql Server数据库触发器和存储过程实例讲解
- 游标、触发器、存储过程实例
- Sql Server 存储过程和触发器
- SQL SERVER 存储过程和触发器
- sql server 存储过程和触发器
- SQL SERVER存储过程和触发器
- SQL存储过程、函数、触发器、游标问答
- SQL Server 存储过程和触发器sql语句练习
- 游标,存储过程,触发器
- MYSQL 存储过程,游标和触发器
- sql server存储过程和游标的用途
- SQL SERVER 2005视图、索引、存储过程、触发器、游标及事务名词解释
- SQL server Base III (存储过程 和 触发器)
- iOS本地通知
- Java容器深入研究(jdk 1.8)--- ArrayList总结与源码分析
- 【第九章】 Spring的事务 之 9.2 事务管理器 ——跟我学spring3
- 利用 BitmapShader 制作自带边框圆形头像
- 欢迎使用CSDN-markdown编辑器
- [SQL SERVER系列]存储过程,游标和触发器实例[原创]
- 翻翻git之---足以取代底部PoPupWindows的强大控件 BottomSheet
- [SQL SERVER系列]工作经常使用的SQL整理,实战篇(三)[原创]
- [SQL SERVER系列]读书笔记之SQL注入漏洞和SQL调优
- [SQL SERVER系列]之嵌套子查询和相关子查询
- 如何买笔记本电脑,从那几个方面看
- [SQL SERVER系列]之常用函数和开窗函数介绍及实例
- mysql日志详细解析 [转]
- BLOB或TEXT字段使用散列值和前缀索引优化提高查询速度