`
wyf
  • 浏览: 424943 次
  • 性别: Icon_minigender_1
  • 来自: 唐山
社区版块
存档分类
最新评论

C#校验sql是否合法,不去执行sql语句

 
阅读更多
public bool ValidateSQL(string sql)  
    {  
        bool bResult;  

        SqlCommand cmd = _conn.CreateCommand();  
        cmd.CommandText = "SET PARSEONLY ON";  
        cmd.ExecuteNonQuery();  
        try  
        {  
            cmd.CommandText = sql;  
            cmd.ExecuteNonQuery();  
            bResult = true;  
        }  
        catch (Exception ex)  
        {  
            bResult = false;  
        }  
        finally  
        {  
            cmd.CommandText = "SET PARSEONLY OFF";  
            cmd.ExecuteNonQuery();  
        }  

        return bResult;  
    }

SET PARSEONLY
检查每个 Transact-SQL 语句的语法并返回任何错误消息,但不编译和执行语句。
SET PARSEONLY { ON | OFF }
当 SET PARSEONLY 为 ON 时,SQL Server 只分析语句。当 SET PARSEONLY 为 OFF 时,SQL Server 编译并执行语句。
SET PARSEONLY 的设置是在分析时设置,而不是在执行或运行时设置。
在存储过程或触发器中不要使用 PARSEONLY。如果 OFFSETS 选项为 ON 而且没有出现错误,则 SET PARSEONLY 返回偏移量。

SET NOEXEC (Transact-SQL)
编译每个查询但不执行查询。
SET NOEXEC { ON | OFF }
当 SET NOEXEC 为 ON 时,SQL Server 将编译每一批处理 Transact-SQL 语句但并不执行它们。当 SET NOEXEC 设置为 OFF 时,所有批处理将在编译后执行。
SQL Server 中的语句执行包含两个阶段:编译和执行。该设置可用于让 SQL Server 在执行 Transact-SQL 代码时,验证代码中的语法和对象名。它也可以用于调试通常是较大的批处理中的部分语句。


SET NOEXEC 设置是在执行或运行时设置,而不是在分析时设置。

 SET PARSEONLY ON

SET PARSEONLY OFF
分享到:
评论

相关推荐

    C#中验证sql语句是否正确(不执行语句)

    SET PARSEONLY检查每个 Transact-SQL 语句的语法并返回任何错误消息,但不编译和执行语句。SET PARSEONLY { ON | OFF }当 SET PARSEONLY 为 ON 时,SQL Server 只分析语句。当 SET PARSEONLY 为 OFF 时,SQL Server ...

    C# 写的数据库查看器 支持SQL2000和oracle10g 高亮语法输入提醒

    2、双击左侧数据表或字段,再sql语句中自动添加。 3、输入sql语句时,自动提醒关键字和表名,点击空格或回车自动完成,基本是模拟VS2005的风格和用法。 4、系统自动判断关键字,然后会相应的染色。 5、输入表名后,...

    C#-字符串操作类

    、指定字符串分割字符串、指定字符串位置获取字符串、过滤SQL中非法字符、检查SQL语句中是否有非法关键字、随机字符串生成、唯一字符串生成、随机数字生成、唯一数字串生成、去除HTML标签、判断是否整型、判断是否...

    使用正则表达式匹配tsql注释语句

    我相信接触过SQL Server数据库的很多朋友都知道,它是以"--"开头来进行注释的,下面的方法是使用正则表达式匹配tsql注释语句的方法,大家参考使用吧

    SiriusCoder C#类库 代码生成器

    360等软件会报安全未知软件,请允许执行。 v1.1.2014.10更新 1、增加了表表之间的关系,通过外键关系的实体类访问更方便 2、增加了DAL的Insert函数。其它基本操作在后续版本中实现. 3、增加了部分表、字段的中文...

    Visual C#2010 从入门到精通(Visual.C#.2010.Step.By.Step).完整去密码锁定版 I部分

    24.2.1 使用数据绑定执行校验 469 24.2.2 改变校验时机 484 第24章快速参考 487 第v部分 管 理 数 据 第25章 查询数据库中的信息 491 25.1 使用ado.net查询数据库 491 25.1.1 northwind数据库 492 25.1.2 ...

    LTP.Net代码自动生成器(DbToCode)

    (1)实现执行选中部分SQL语句。 (2)实现关键字高亮。 (3)支持F5快捷键执行语句。 (4)实现打开现有脚本,保存当前脚本功能。 (5)实现错误检测提示功能。 4. 自动生成存储过程和SQL脚本。 可以根据...

    SiriusCoder 天狼星C#代码小妖精

    1 根据SQL数据库生成实体文件类 类似于SqlMetal和动软代码生成器 但是相比较SqlMetal简化了较多的不常用的函数 我认为的 成员变量支持数据库字段注释 一个表对应一个文件 不像sqlmetal如果数据库表和字段多了 一下...

    动软.Net代码生成器

    •实现执行选中部分SQL语句。 •实现关键字高亮。 •支持F5快捷键执行语句。 •实现打开现有脚本,保存当前脚本功能。 •实现错误检测提示功能。 自动生成存储过程和SQL脚本 •可以自动生成表的创建脚本...

    asp.net知识库

    也论该不该在项目中使用存储过程代替SQL语句 如何使数据库中的表更有弹性,更易于扩展 存储过程——天使还是魔鬼 如何获取MSSQLServer,Oracel,Access中的数据字典信息 C#中利用GetOleDbSchemaTable获取数据库内表信息...

    动软.Net代码自动生成器(Codematic)

    (1)实现执行选中部分SQL语句。 (2)实现关键字高亮。 (3)支持F5快捷键执行语句。 (4)实现打开现有脚本,保存当前脚本功能。 (5)实现错误检测提示功能。 <br/>4. 自动生成...

    风越.net代码生成器 v3.5

    风越.net代码生成器 [FireCode Creator] 是一款采用.Net FrameWork2.0框架、基于多种数据库的程序代码生成软件,可... 生成不同选择字段的SQL语句 生成数据库字典 ★ 模板代码生成器,可自定义模板、变量生成代码 ★

    风越asp代码生成器 V3.5

    《风越代码生成器 [FireCode Creator]》是一款采用.Net FrameWork2.0框架、基于多种数据库的程序代码生成软件,可... 生成不同选择字段的SQL语句 生成数据库字典 ★ 模板代码生成器,可自定义模板、变量生成代码 ★

    风越.Net代码生成器 [FireCode Creator] V1.3 精简版

    生成不同选择字段的SQL语句 生成数据库字典 ★ 模板代码生成器,可自定义模板、变量生成代码 ★ 19、提供建站常用辅助工具: 屏幕尺 剪切板,保存最近指定次数的历史记录 常用加解密、编解码(DES、MD5、SHA...

    风越ASP代码生成器2.8

    生成不同选择字段的SQL语句 生成数据库字典 ★ 模板代码生成器,可自定义模板、变量生成代码 ★ 19、提供建站常用辅助工具: 屏幕尺 剪切板,保存最近指定次数的历史记录 常用加解密、编解码(DES、MD5、SHA...

    风越.net代码生成器v2.9

    生成不同选择字段的SQL语句 生成数据库字典 ★ 模板代码生成器,可自定义模板、变量生成代码 ★ 19、提供建站常用辅助工具: 屏幕尺 剪切板,保存最近指定次数的历史记录 常用加解密、编解码(DES、MD5、SHA...

Global site tag (gtag.js) - Google Analytics