在我的应用程序中,我有一个文本框,用户可以粘贴过程,我需要解析此SQL并获取表名,连接,列,列模式等。
c#中有一个简单而不是使用字符串操作来执行此活动吗?
答案 0 :(得分:1)
不使用复杂的SQL Parser,从SQL查询中正确检索表,列并不容易。我们以这个简单的SQL为例:
SELECT a.deptno "Department",
a.num_emp/b.total_count "Employees",
a.sal_sum/b.total_sal "Salary"
FROM
(SELECT deptno, COUNT(*) num_emp, SUM(SAL) sal_sum
FROM scott.emp
GROUP BY deptno) a,
(SELECT COUNT(*) total_count, SUM(sal) total_sal
FROM scott.emp) b
您不仅需要在from子句的子查询中获取类似:scott.emp.deptno的列,而且还不能将num_emp作为列,它只是子查询中的别名。
举个例子让你知道字符串操作或RegEx不适用于此,你应该fully parse SQL来精确地获得所需的结果。
答案 1 :(得分:0)
答案 2 :(得分:0)
以上项目不适用于大程序,包含300多行Tsql的程序,请您提供任何替代方法来查找它,因为我需要使用
using Microsoft.Data.Schema.ScriptDom.Sql;
using Microsoft.Data.Schema.ScriptDom;
asselmbles。
但现在我可以获得使用上述组件的代码。
主要结果应该是给定商店过程中的表名和列名(包含300行代码)。