sql server 中语法校验

来源:互联网 发布:骂人语音软件 编辑:程序博客网 时间:2024/06/04 00:51

在今天的培训考试过程中,我提出一个扩展题,要求对提交的sql进行语法校验.

其实这个题很简单,根本不需要用正则表达式去做语法分析,可以直接使用sql server自带的功能.

不多说,上代码.

alter proc sp_checksql@sql varchar(8000),@Error varchar(max)='' outputasbeginset nocount onBEGIN TRYset @sql='SET parseonly on;'+@sqlexec(@sql)exec ('SET parseonly off;')END TRYBEGIN CATCHset @Error='语法校验失败'+char(10)+isnull(error_message(),'')+char(10)+'异常发生于第'+convert(varchar(10),isnull(error_line(),0))+'行'END CATCHEND
核心就在于SET parseonly on选项,开启这个选项相当于点SSMS工具栏中的分析按钮.