网友俱乐部 » » MSSQL教程 » MSSQL自定义函数(过滤字符串)

2007-11-24 10:14 ljjk5
MSSQL自定义函数(过滤字符串)

Create FUNCTION f_checkString(@temp varchar(4000))
--f_checkString为方法名
--@temp为参数名 varchar为参数类型 4000为类型长度
--过滤SQL字符串
RETURNS varchar(4000)
--返回类型为varchar长度为4000
AS
BEGIN
set @temp=replace(@temp,'''','')
set @temp=replace(@temp,'"','')
set @temp=replace(@temp,':','')
set @temp=replace(@temp,'-','')
return @temp
END

--------------------------------------------------------------------------------------------
在MSSQL中存储过程中调用方法如下:

--判断用户名和密码是否正确
--exec sp_CheckUser
--2006-8-2
--dzend.com
Create PROCEDURE sp_CheckUser
@username   varchar(20),   --用户名
@password   varchar(20)   --密码
as
declare
@str    varchar(20),
@result    int,
@status    int

--过滤非法字符串
[color=red]select @username=dbo.f_checkString(@username)
select @password=dbo.f_checkString(@password)[/color]


select @str=[password],@status=status from usersInfo where username=@username
if @@rowcount=0
set @result=-1    --用户名错误
else
begin
if @status=1
  set @result=-3   --帐号被锁定
else
begin
  if @str=@result
   set @result=0   --登陆成功
  else
   set @result=-2   --密码错误  
end
end
select @result
GO

页: [1]


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.