如何判断sql执行会修改数据库表


有一个文本框和一个按钮,文本框是输入sql语句的地方,点击按钮的时候sql语句执行;
现在想要实现一个功能:要求填入的sql语句只能执行查询操作,若此sql语句会对数据库进行修改则提示不能执行此sql语句,找了好久也没有找到办法实现,特来求助各位大神,使用的是sql server 2008及C#语言开发的

数据库 c#

Damask 10 years, 10 months ago

几个思路
0. 终极必杀技,做一个完整的T-SQL Parser,然后你就知道某个特定的SQL语句会不会修改数据库了,但是这个东东还真不简单
1. 设定权限,给执行这些SQL的用户设定只读权限,这样最符合lz的需求,如果你还需要修改就另建一个有写权限的用户。
2. SQL Server中有DDL Trigger和DML Trigger,可以“感知”并“阻止”数据变化,但这两个东西会严重影响性能,不建议乱用。

真·大头怪婴 answered 10 years, 10 months ago

Your Answer