阅读教程

SQL Server使用javascript脚本验证数据[强]

[日期:2008-06-27] 来源:  作者:志伟
SQLServer javascript教程

 

SQLServer中用sp_OACreate等一系列系统存储过程可以调用服务器上的Com对象,因此可以通过调用COM使得T-SQL站在巨人的肩膀上,但这需要很高的权限。 比如下面的测试脚本示范了通过调用javascript来实现用正则表达式验证数据表中Email的功能,你如果用过系统函数中类似isdate,isnumeric之类的功能就会去努力尝试用同样方便的方法实现自己的特定验证。

--如果SQL2005提示没有权限则打开Ole Automation Procedures

--exec sp_configure 'show advanced options',1

--reconfigure

--exec sp_configure 'Ole Automation Procedures',1

--reconfigure

 

--测试email

create function isEmail(@value varchar(100))

returns bit

as

begin

    declare @object int

    declare @v bit

    declare @str varchar(8000)

    --javascript的正则表达式定义和调用语句

    set @str='var reg=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,3}|\d+)$/i;reg.test("'+@value+'")'

    --调用脚本组件来执行脚本

    exec sp_OACreate 'MSScriptControl.ScriptControl',@object output 

    exec sp_OASetProperty @object, 'Language','javascript'

    exec sp_OAMethod @object, 'eval', @v out,@str

    --销毁com对象

    exec sp_OADestroy @object

    return @v

end

go

--测试函数

select * from(

    select 'aa.bb.com' as email union

    select 'aa@bb.com' union

    select 'aa.bb@com' union

    select 'aa@bb@com' ) a

    where dbo.isEmail(email)=1

go

--删除测试环境

drop function isEmail

go

 

/*----------------输出结果

email

---------

aa@bb.com

-----------------------*/

Com能够实现的功能很多,有人会用sqlserver调用xmlhttp去获取网页数据,还有人用office组件去做简体和繁体的转换,甚至可以自己开发Com组件,但那样还不如去写扩展存储过程了。

 

(责任编辑:志伟

     本站文章仅代表作者观点,本站仅传递信息,并不表示赞同或反对.转载本站点内容时请注明来自志伟教程资料网。如不注明,志伟将根据《互联网著作权行政保护办法》追究其相应法律责任。



      
阅读:
录入:志伟

评论 】 【 推荐 】 【 打印
上一篇:[超大数据]优化MsSQL,MySQL,Oracle的UPDATE语句
下一篇:SQL Server 2005索引设计与配置
本文评论       全部评论
发表评论


点评: 字数
姓名:

 
搜一下


 
本周热门教程
 

关于我们 | 广告合作 | 法律声明 | 联系站长 | 网站地图 | 网站搜索 | | Top ↑
Copyright © 志伟教程资料网 Powered by zhiweinet 1.0
 本栏目提供:SQL Server使用javascript脚本验证数据[强]