我有一個字符串表示一個SQL查詢,我需要從該字符串中提取表的名稱。例如:如何解析表的名稱SQL查詢語句
SELECT * FROM Customers
會返回「客戶」。或
SELECT * FROM Customers c, Addresses a WHERE c.CustomerName='foo'
SELECT a.AddressZip FROM Customers c
INNER JOIN Addresses a ON c.AddressId=a.AddressId
會返回「客戶,地址」。獲取更先進:
(SELECT B FROM (SELECT C FROM (SELECT Element AS C FROM MyTable)))
僅返回 「MyTable的」
(注意,我可能已經typo'd的查詢,但你的想法)。
完成此操作的最佳/最準確的方法是什麼?
問題「爲什麼?」彈出想法.... – 2010-06-26 01:51:15
你是否針對任何特定的RDBMS /方言?有關於解析SQL的一些問題,例如http://stackoverflow.com/questions/589096/parsing-sql-code-in-c沒有什麼特別的結論,但我已經看到。 – 2010-06-26 02:08:20
至於'爲什麼'這是因爲我解析查詢的日誌文件並顯示訪問最多的表,操作等。不是它應該重要:)至於我瞄準什麼,它是MS-SQL。 – esac 2010-06-26 02:15:22