create table luo.login_record ( user_name varchar2(10) not null, user_passwd varchar2(10) not null, record_time date default sysdate not null, success varchar2(10) not null ) ; create table luo.login ( user_name varchar2(
create table luo.login_record (
user_name varchar2(10) not null,
user_passwd varchar2(10) not null,
record_time date default sysdate not null,
success varchar2(10) not null
) ;
create table luo.login (
user_name varchar2(10) not null,
user_passwd varchar2(10) not null
) ;
create or replace trigger luo.login_record_triger
before insert on luo.login for each row
begin
insert into login_record values(
:new.user_name,
:new.user_passwd,
sysdate,
'hi'
);
end;
--创建存储过程
create or replace procedure login_procedure(
usern in luo.login.user_name%type, passwd in luo.login.user_passwd%type
)as
count_num integer ;
begin
select count(*)
into count_num
from login
where login.user_name = usern
and login.user_passwd = passwd;
if count_num = 0 then
insert into luo.login_record values(usern,passwd,sysdate,'failure');
dbms_output.put_line('login faild!');
else
insert into luo.login_record values(usern,passwd,sysdate,'success');
dbms_output.put_line('login success!');
end if;
commit;
exception
when others then
dbms_output.put_line('exception occured!');
rollback;
end login_procedure;
/
下面是sql server的语法:
--recordloginwithtrigerusesql.sql - creates the labtest database
--author: luo weifeng
--time : 2010-6-23
--all rights reserved.
--切换到master数据库
use master
-- 查询有没有以我们期望的数据名为名的数据库,存在则删除
if exists (select * from sysdatabases where name='labtest')
begin
raiserror('dropping existing labtest database ....',0,1)
drop database labtest
end
go
-- 创建数据库(大小等用默认值)
create database labtest
go
-- 进入新建数据库创建表
use labtest
go
-- 检查是否正确
if db_name() 'labtest'
raiserror('error in recordloginwithtrigerusesql.sql, ''use labtest'' failed! killing the spid now.'
,22,127) with log
go
--创建历史记录表
create table login_record (
user_name varchar(10) not null,
user_passwd varchar(10) not null,
record_time date not null default( getdate() ),
success varchar(10) not null
)
go
--创建用户名/密码表
create table login (
user_name varchar(10) not null,
user_passwd varchar(10) not null
)
go
-- 检查出错
raiserror('now at the create trigger div ...',0,1)
go
-- 创建触发器
create trigger login_record_triger
on login
for insert
as
begin
declare @new_name varchar(10);
declare @new_passwd varchar(10);
set @new_name = (select inserted.user_name from inserted)
set @new_passwd = (select inserted.user_passwd from inserted)
insert into login_record values(
@new_name,
@new_passwd,
getdate(),
'hi'
);
end
create procedure login_procedure
(
@usern varchar(10),
@passwd varchar(10)
)
as
begin
declare @count_num integer;
set @count_num = ( select count(*)
from login
where login.user_name = @usern
and login.user_passwd = @passwd)
if (@count_num = 0)
begin
insert into login_record values(@usern,@passwd,getdate(),'failure')
end
else
begin
insert into login_record values(@usern,@passwd,getdate(),'success')
end
end
写的不好,拿出来见笑了,只为那些需要的人提供一些东东吧。