如何验证 SQL 语句的正确性

JavaScript019

如何验证 SQL 语句的正确性,第1张

验证sql语句的正确性:-- 定义你想要检验的SQL语句DECLARE @sql NVARCHAR(MAX)--'正确的语句'SET @sql = 'select * from Report_Test1'--'错误的语句'--SET @sql = 'select 1 from'DECLARE @testsql NVARCHAR(MAX),@result INTSET @testsql = N'set parseonly on' + @sqlEXEC @result = sp_executesql @testsql-- 如果SQL语句有误,则@result不为0;IF @result = 0BEGINPRINT '正确的语法'--开始执行正确的SQL语句--exec sp_executesql @sqlENDELSEBEGINPRINT '错误的语法'--不执行任何操作END

T-SQL是sqlserver的标准语法,一般在SQL Server Management Studio中执行T-SQL语句时,如果不正确,会直接报错。

如以下代码(求1到100累加的和):

DECLARE @i INT,@sum INT

SET @i=1

SET @sum=0

WHILE @i<=100

 BEGIN

SET @sum=@sum+@i

SET @i=@i+1

 END

PRINT @sum

此代码是正确的,最后的输出结果如下:

如果代码不正确,则会在消息的部分显示报错信息(比如将上边的END注释掉)。

应该写成

var sql1="select * from shujubiao"

var sql2=" where xuhao like "+"'%"+xhao+"%' or xingming like '%"+xhao+"%' or yuwen like '%"+xhao+"%' or

shuxue like '%"+xhao+"%'"

if(a==""){

sql=sql1

}else{

sql=sql1+sql2

}

你的sql2的where前面少了一个空格,另外,变量不要用双引号