灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2018回复:0

[SQL Server]SQL Server中trigger和变量的使用笔记

楼主#
更多 发布于:2012-09-04 18:06

SQL Server中trigger和变量的使用笔记

[sql]
--用trigger插入主键的值  
--通过时间变量来决定主键的值  
create trigger ss on test  
instead of insert --在插入之前执行此trigger  
as  
begin  
    declare @index varchar(30)  --声明变量  
    waitfor delay '00:00:00.010'    --延时0.01秒执行下一条指令  
    set @index = replace(replace(replace(replace(convert(varchar(23),
getdate(),121),'-',''),' ',''),':',''),'.','') --将当前时间转化为字符串  
    insert into test  
    select @index,i.SNAME,i.STATUS,i.CITY  
    from inserted i  
end   www.atcpu.com
  
insert into test(SNAME,STATUS,CITY) values ('11',30,'ss');  
insert into test(SNAME,STATUS,CITY) values ('11',30,'ss');  
insert into test(SNAME,STATUS,CITY) values ('11',30,'ss');  
insert into test(SNAME,STATUS,CITY) values ('11',30,'ss');  
insert into test(SNAME,STATUS,CITY) values ('11',30,'ss');  
insert into test(SNAME,STATUS,CITY) values ('11',30,'ss');  
  
drop trigger ss;  
delete from test  
select * from test  
   www.atcpu.com
  
--测试变量的用法  
declare @a numeric  
set @a = cast(replace(replace(replace(replace(convert(varchar(23),getdate(),121),'-',''),' ',''),':',''),'.','') as numeric)  
print @a  
print convert(varchar,(@a +1))  
  
--另一种方法使用变量  
declare @index varchar(30)  --声明变量  
set @index = replace(replace(replace(replace(convert(varchar(23),getdate(),121),'-',''),' ',''),':',''),'.','') --将当前时间转化为字符串  
print @index  




喜欢0 评分0
游客

返回顶部