.NETで、SQLステートメントをSQLサーバーに渡して解析し、ステートメントに含まれるテーブルと操作のタイプを返すことは可能ですか? したがって、次のようなステートメントの場合:
select * from Table1
left outer join Table2 on Table1.id=Table2.foreignid;
delete from Table2 where date < 2009/12/12
SQL Server は、関連するテーブルを次のように返す場合があります。
Table1 Read
Table2 Read
Table2 Delete
したがって、ステートメントは実行されず、関連するテーブルが返されるだけです。
私が尋ねる理由は、私が取り組んでいるアプリケーションには、テーブルごとに適用したいアプリケーション レベルのテーブル権限があるからです。ステートメントに含まれるテーブルを解析する現在の方法は、正規表現を使用しており、単純なステートメント以外では失敗します。明らかに、この種の仕事に正規表現を実際に使用することはできません