在页面上编写好的SQL语句,然后保存到数据库中,如何查询该语句是否正确,
就像查询分析器中的语法检查?而不是执行该SQL语句?
比如:select * from aa 这句是正确的
但是写成了 select * form aa
通过语法检查,指出该句不正确?
把語句複製到查詢分析或者企業管理器中運行
页面没有那么智能,页面上sql语句只表现为一个字串,只有在执行以后才能判断是否正确,而这样判断实际上并不页面自己本身判断的,而是由数据库来判断的.
把SQL语句.COPY到SQLServer查询分析器里运行就可以了!
用正则表达式
例如:
using System;
using System.Text.RegularExpressions;
namespace chjl.Test
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
public class SqlValidate
{
public static bool IsSelectOk(string selectSql)
{
string pattern = @"SELECT\s+\w+\s+FROM\s+\w+";
Regex regex = new Regex(pattern, RegexOptions.IgnoreCase);
return regex.IsMatch(selectSql);
}
public static void Main()
{
string selectSql = "select Username from Users";
bool isOk = IsSelectOk(selectSql);
Console.WriteLine(isOk);
}
}
}
但不是在查询分析器中验证语法正确.
既然不是,你让他“是”就行了。
用事务
执行后再rollback,发生异常就是语法错误
从字面上进行语法检查应该很难
可以用事件探查器跟踪吧
不用查询分析器也行,vs2003里面就可以直接操作sql server界面比sql server还要漂亮,就在服务器资源菜单里面
多检查几遍
用正则表达式,,但会很麻烦