2008-09-20 61 views
2

我剛剛繼承了一個服務器應用程序,但似乎數據庫的唯一副本已損壞且工作版本已消失,因此有可能找到應用程序正在運行的查詢,所以我可以嘗試重建表?在已編譯的應用程序中查找SQL查詢

編輯:我有一些沒有擴展名的文件,我被命名爲與數據庫相同的IDK,如果有任何事情可以用它們完成,但如果任何人有任何想法。

接受的答案似乎最有可能成功,但我能夠找到另一個備份,所以我沒有測試它。

回答

3

打開SQL查詢記錄並觀察應用程序要求的內容。

+0

任何建議如何做到這一點?我是一個LAMP傢伙,在我的領域之外。 – UnkwnTech 2008-09-20 22:22:55

+0

使用SQL Server配置管理器訪問服務器。 (例如從MSDN安裝。)然後您可以編輯服務器屬性,包括日誌記錄屬性。打開最詳細的日誌。日誌條目本身很明顯,因爲它們明顯是SQL查詢。 – 2008-09-21 19:55:48

2

如果你有機會到任何一個UNIX機器,或者可以安裝在cygwin公用事業(http://www.cygwin.com/),有一個名爲'strings'的命令,它將搜索任何文件類型並打印出任何連續的字符數據序列(可能只是ascii)。該工具應該可以幫助您識別嵌入在應用程序中的sql查詢。

+0

字符串| grep -E'UPDATE | SELECT | ...'可能工作得很好。 :-) – 0124816 2008-09-21 17:21:08

2

查找SQL事件探查器(根據您擁有的版本)通常可從查詢分析器(isqlw.exe)或管理工作室(更高版本)中的工具菜單中獲得。

使用SQL事件探查器,您可以在服務器上運行一個跟蹤,以顯示應用程序正在請求哪些查詢。

0

你可能正則表達式的文件中搜索

  • 「SELECT *」
  • 「UPDATE *」
  • 「DELETE FROM *」
  • 「INSERT INTO *」